login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Van GET naar form value

Offline pcio - 11/05/2009 20:27 (laatste wijziging 11/05/2009 20:29)
Avatar van pcioNieuw lid Hoi,

Ik ben bezig met een pagina waarbij je de gegevens kunt wijzigen. Nu leek het mij handig dat deze gegevens standaard compleet zijn ingevuld en je deze dan zelf kunt wijzigen.

Het laten invullen van de gegevens lukt mij al. Alleen wanneer ik nu op Gegevens Aanpassen (submit) klik dan verschijnen er allerlei foutmeldingen.

Mijn php code:
Plaatscode: 136448

En de volgende bijbehorende foutmeldingen:
  1. Notice: Undefined index: klant in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 43
  2.  
  3. Notice: Undefined variable: klantnaam in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 71
  4.  
  5. Notice: Undefined variable: adres in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 72
  6.  
  7. Notice: Undefined variable: plaats in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 73
  8.  
  9. Notice: Undefined variable: telefoon in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 74
  10.  
  11. Notice: Undefined variable: klantid in J:\UsbWebserver\Root\inloggen\fabriek\klanten_bewerken.html on line 75


Nu is mijn idee dat de waarde van get ergens tijdelijk wordt opgeslagen en zo blijft bestaan, als dat mogelijk is en de fouten dan verdwijnen.
Een ander idee kan natuurlijk ook, ben namelijk pas net met php bezig.

Het kan daarom ook zijn dat er iets teveel onnodige code bijstaat.
ps. Mijn HTML bestanden worden als PHP ingelezen.


Groetjes,
pcio

8 antwoorden

Gesponsorde links
Offline Raze - 11/05/2009 20:31 (laatste wijziging 11/05/2009 20:32)
Avatar van Raze PHP beginner en kan je ook de code geven die jeom de tabel/variabelen/wat dan ook te updaten gebruikt?

undefined index: klant wil zeggen dat je inde code ergens vraagt naar $_GET['klant'], maar dat er in de url geen ?klant= of &klant= voorkomt.
Offline pcio - 11/05/2009 20:33
Avatar van pcio Nieuw lid Die staat op Plaatscode
Offline Raze - 11/05/2009 20:34 (laatste wijziging 11/05/2009 20:40)
Avatar van Raze PHP beginner Sorry had ik idd overgelezen mijn excuses

EDIT: op regel 43 doe je dit:
  1. $klantnummer = "" . $_GET["klant"] . "";


je krijgt een foutmelding "undefined index", dus je moet wel ?klant= of &klant= in in je link zetten

de andere ($adres,$klantnummer,...) geef je zo een waarde
  1. $klantnaam = "$row2->Klantnaam";


aangezien er geen index in de link staat, wordt die query niet uitgevoerd (of is 0 beter gezegd) en wordt er dus ook geen variabele aangemaakt, omdat er geen data is.


eventuele oplossing: zet boven de eerste query:
$klantid= NULL;
$adres = NULL;

maar niet de $klantnummer op NULL zetten na je $_GET['klant'] ophaalt, maar ervoor.

Tenslotte, je kan ook alle informatie in één query uit de database halen, ipv voor elk veld een aparte query te gebruiken.
Offline ArieMedia - 11/05/2009 20:38
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Nog geen antwoord op je vraag..
Maareeuh je kan gewoon 1x dit doen ipv 5x:

  1. $klantnummer = "" . $_GET["klant"] . "";
  2. $idquery = "SELECT * FROM `klanten` WHERE Klantnummer = '".$klantnummer."'";
  3. $result = mysql_query($idquery);
  4. while ($row = mysql_fetch_object($result)) {
  5. $klantid = $row->id;
  6. $klantnaam = $row->Klantnaam;
  7. $adres = $row->Adres;
  8. $plaats = $row->Plaats;
  9. $telefoon = $row->Telefoon;
  10. }

Offline pcio - 11/05/2009 20:41
Avatar van pcio Nieuw lid Bedankt, zal dat ook meteen even aanpassen. Zie nu dat het met een haakje erachter wel moet gaan. Die had ik niet geopend en daarom kreeg ik het denk ik niet voor elkaar.

Is al een stuk overzichtelijker.
Offline Raze - 11/05/2009 20:42
Avatar van Raze PHP beginner @Arie2Zero:

zijn foutmeldingen zijn anders wel undefined index (dus geen $_GET in de link) en undefined variable (dus de variabele wordt niet aangemaakt).

ik zou ook zelfs geen $klantnummer aanmaken, maar $_GET['klant'] gewoon behouden (is al een variabele). Wel oppassen dat men via de link geen andere id kan ingeven, anders kunnen klaten data wijzigen van andere klanten.
Offline pcio - 11/05/2009 20:48 (laatste wijziging 11/05/2009 20:49)
Avatar van pcio Nieuw lid Ik heb nog even gekeken en met onderstaande wijziging werkt het wel:
  1. <form action="klanten_bewerken.html[b]?klant='.$klantnummer.[/b]'" method="post">


Of het een juiste oplossing weet ik niet, maar de gegevens worden nu wel gewijzigd.

Dat de link in de url staat maakt niet zo heel veel uit. Is namelijk voor de backend waar je als klant niet kunt inkomen. Maar het zou wel mooi zijn als de klant= niet in de url staat.
Is dat mogelijk of moet ik dan mijn hele script wijzigen.
De link naar de pagina om te bewerken is:
  1. <a href="klanten_bewerken.html?klant='.$record->Klantnummer.'">'.$record->Klantnummer.'</a>
Offline ArieMedia - 11/05/2009 20:54
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Raze schreef:
@Arie2Zero:

zijn foutmeldingen zijn anders wel undefined index (dus geen $_GET in de link) en undefined variable (dus de variabele wordt niet aangemaakt).

ik zou ook zelfs geen $klantnummer aanmaken, maar $_GET['klant'] gewoon behouden (is al een variabele). Wel oppassen dat men via de link geen andere id kan ingeven, anders kunnen klaten data wijzigen van andere klanten.
Heb het script nog niet verder bekeken, maar dat viel me gewoon op ;)

$klantnummer = $_GET['id'];
Maar als je het wil onthouden voor een langere tijd zal ik gewoon een sessie starten.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.216s