Selectie uit een lijst
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 -
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 -
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
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.
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
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