Door
Jan Rie
op 10-11-2014 21:48
gewijzigd op 10-11-2014 21:58
1.663 views
Ik ben net bezig met php en SQL en ik heb het volgende probleem waar ik niet uitkom. Waarschijnlijk heel eenvoudig. Een lijst met maanden, de geselecteerde maand moet worden opgeslagen in een variabele die wordt gebruikt in een select bij een sql statement.
De lijst heb ik, maar hoe krijg ik de waarde in een variabele voor later in de sql. Het script ziet er als volgt uit:
Nee, want $_POST bestaat nog niet. Je zult eerst toch echt je formulier moeten versturen met een submit-knop.
Daarna moet je kijken of het forumier is verstuurd via POST.
Dit werkt dus wel:
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
echo $_POST['Keuze']; // het is onnodig om een variabele te kopiëren naar een andere var
} else {
echo "Er is niks verstuurd.";
}
?>
Hartelijk dank, ik zal de volgende keer de code instructie gebruiken.
Ik snap wat je bedoelt maar ik heb het nog niet werkend, er blijft staan "er is niets verstuurd"
Er staat "er is niets verstuurd" omdat er geen form tags omheen staan. ook mist er een submit button.
Als je die 2 dingen in orde maakt, werkt het script wel. http://www.w3schools.com/html/html_forms.asp
Het werkt. De waarde is de waarde die ik geselecteerd heb. Super, bedankt voor de tips en code.
Nu komt het volgende, na de selectie gaat de lijst weer naar de eerste waarde, kan dat eenvoudig geregeld worden als ik juli kies dat juli blijft staan.
Als je in de <option> selected toevoegd zal deze als default gekozen worden:
<option value="1">Optie1</option>
<option value="2" selected>Optie2</option> // Deze is standaard
Met behulp van je post waarde kun je dus uitzoeken bij welke de tekst selected moet komen. Je kunt dit eventueel met een tussen variabele doen.
<?php
switch $_POST['Keuze']
{
case '01':
$selected_maandag = "selected"
break;
}
?>
Dit is een optie. Persoonlijk zou ik overwegen om heel je <select> dynamisch te maken.
D.m.v. een loop kun je de select opbouwen:
<?php
// Loop van 1 tot en met 12
for($index = 1; $index <= 12; $index++)
{
// Als de POST keuze hetzelfde is als het nummer in de loop dan deze selecteren
if($_POST['Keuze'] == $index)
{
$option_value .= "<option value=\"$index\" selected>Optie $index</option>";
// Anders is het gewoon een optie
} else {
$option_value .= "<option value=\"$index\">Optie $index</option>";
}
}