Selectie uit een lijst
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:
De echo geeft geen waarde.
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html PUBLIC
<html>
<body>
<label for="Maand"> Maand : </label>
<select id="cmbMaand" name="Keuze" >
<option value="01">Januari</option>
<option value="02">Februari</option>
<option value="03">Maart</option>
<option value="04">April</option>
<option value="05">Mei</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">Augustus</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<?php
$maand = $_POST['Keuze'];
echo $maand ;
?>
</body>
</html>
<html>
<body>
<label for="Maand"> Maand : </label>
<select id="cmbMaand" name="Keuze" >
<option value="01">Januari</option>
<option value="02">Februari</option>
<option value="03">Maart</option>
<option value="04">April</option>
<option value="05">Mei</option>
<option value="06">Juni</option>
<option value="07">Juli</option>
<option value="08">Augustus</option>
<option value="09">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<?php
$maand = $_POST['Keuze'];
echo $maand ;
?>
</body>
</html>
De echo geeft geen waarde.
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 10/11/2014 21:58:18 door - Ariën -
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:
Als je de keuze direct wilt tonen, zonder je formulier te versturen, dan moet je kijken naar JavaScript, en bij voorkeur de jQuery-library:
http://learn.jquery.com/using-jquery-core/faq/how-do-i-get-the-text-value-of-a-selected-option/
Daarna moet je kijken of het forumier is verstuurd via POST.
Dit werkt dus wel:
Code (php)
Als je de keuze direct wilt tonen, zonder je formulier te versturen, dan moet je kijken naar JavaScript, en bij voorkeur de jQuery-library:
http://learn.jquery.com/using-jquery-core/faq/how-do-i-get-the-text-value-of-a-selected-option/
Gewijzigd op 10/11/2014 21:59:42 door - Ariën -
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"
Ik snap wat je bedoelt maar ik heb het nog niet werkend, er blijft staan "er is niets verstuurd"
Wat heb je nu staan dan? Heb je wel een formulier toegevoegd aan je pagina inclusief alle juiste instellingen?
Jan Riegman op 11/11/2014 07:04:15:
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"
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
Gewijzigd op 11/11/2014 09:33:08 door Randy vsf
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.
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:
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.
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:
Code (php)
1
2
2
<option value="1">Optie1</option>
<option value="2" selected>Optie2</option> // Deze is standaard
<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.
Code (php)
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:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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>";
}
}
?>
// 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>";
}
}
?>
Helemaal duidelijk, ik ga hiermee aan de slag. Nogmaals dank voor de tips. PHP is voor mij nieuw, het is net weer anders dan access en vba
Nadeel is zo dat je 2x nagenoeg dezelfde HTML moet typen.
Dat kan voorkomen worden door gebruik te maken van een array met de maanden:
Toevoeging op 12/11/2014 11:33:14:
Let ook op: bij <label for=""> moet je de name van de 'name' van het input-element aanduiden.
Dat was in het eerste bericht niet zo.
Dat kan voorkomen worden door gebruik te maken van een array met de maanden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<form action="" method="post">
<label for="Keuze"> Maand : </label>
<select id="cmbMaand" name="Keuze" >
<?php
// welke maanden (of keuzes) zijn er?
$keuzes= array('januari', 'februari', 'maart');
foreach($keuzes as $keuze)
{
// is deze keuze vorige keer gekozen?
$selected = '';
if(isset($_POST['Keuze']) AND $_POST['Keuze'] == $keuze)
{
$selected = 'selected';
}
// 1x de html weergeven, dynamisch vanuit de array
echo '<option value="'.$keuze.'" '.$selected.'>'.$keuze.'</option>';
}
?>
</select>
<input type="submit" value="Verstuur">
</form>
<label for="Keuze"> Maand : </label>
<select id="cmbMaand" name="Keuze" >
<?php
// welke maanden (of keuzes) zijn er?
$keuzes= array('januari', 'februari', 'maart');
foreach($keuzes as $keuze)
{
// is deze keuze vorige keer gekozen?
$selected = '';
if(isset($_POST['Keuze']) AND $_POST['Keuze'] == $keuze)
{
$selected = 'selected';
}
// 1x de html weergeven, dynamisch vanuit de array
echo '<option value="'.$keuze.'" '.$selected.'>'.$keuze.'</option>';
}
?>
</select>
<input type="submit" value="Verstuur">
</form>
Toevoeging op 12/11/2014 11:33:14:
Let ook op: bij <label for=""> moet je de name van de 'name' van het input-element aanduiden.
Dat was in het eerste bericht niet zo.
Gewijzigd op 12/11/2014 11:32:31 door Eddy E




