Eerst gaan we nog naar de html code kijken. Als eerste naar de select control. De name van select is later belangrijk als we iets met de geselecteerde waarde van de control gaan doen. Het is goed om hier een duidelijke naam voor te pakken. Ik had die gisteren al aangepast.
Bij elke option heb ik de attribute value toegevoegd. Als we de attribute value niet hebben, wordt de tekst tussen <option> </option> als waarde gebruikt.
Maar dit is niet altijd handig. In ons geval gaan we value gebruiken om de merkid van het merk in op te slaan.
<form name="autoform" action="" method="POST">
<select name="merken">
<option value="1">Ford</option>
<option value="2">Audi</option>
<option value="3">VW</option>
</select>
</form>
Misschien is je opgevallen dat ik bij form ook een paar attribute toegevoegd heb. Namelijk name, action en methode.
Name van het form is handig om het form te kunnen identificeren.
action gebruiken we om aan te geven welke aktie uitgevoerd moet worden als het form ge-submit wordt.
method wordt gebruikt om aan te geven hoe de data verzonden wordt.
Met deze attributen gaan we later nog iets doen.
Nu gaan we het PHP script aanpassen zodat we de boven staande code als resultaat in de browser krijgen. Het goed om de uitvoer van een PHP script in de browser te controleren mbv "bron weergeven", dan kun je zien of de html code klopt die script gegenereerd heeft.
We moeten de merkid tegelijk met het merk uit de database hier voor moet de query aangepast worden. Om data uit meerdere kolommen van de tabel te halen kun je de namen van de kolommen achter SELECT opsommen met een comma ertussen.
Nu nog even naar de code om de option uit te geven. Hier wil ik eerst nog iets aan veranderen:
echo "<option>".$list['Merk']."</option>\n"; namelijk de ". In PHP kun je voor string (tekst) tussen " of tussen ' zetten, maar PHP verwerkt de tekst die er tussen staat anders.
Als je ' gebruikt doet PHP niets met de tekst. Maar bij " wordt de tekst gescand, het is mogelijk om dit te doen: echo "De waarde van de variabele merk is: $merk";. Als $merk de waarde Ford heeft is het resultaat De waarde van de variabele merk is: Ford.
In deze situatie maakt het inprincipe niet zoveel uit of we " of ' gebruiken, maar " wordt in html gebruikt en daarom gaan we ' hie gebruiken.
'<option>' . $list['Merk'] . '</option>\n';
Overigens het is toch mogelijk in een string waar " omheen staan een " in de tekst te gebruiken door er een \ voor te zetten, dus zo "Een \"woord\" tussen aanhalingstekens".
Maar dat maakt het nu wat minder overzichtelijk. vandaar die wijzig.
De . wordt in PHP gebruikt om 2 strings aan elkeer te plakken.
'<option value"' . $de_merkid . '">' . $list['Merk'] . '</option>\n';
Ik wil voorstellen dat je eens gaat proberen om het script aan te passen. Het is geen probleem als het niet lukt.