Hoe een leeg vakje in selectielijst?
Ik heb op een pagina een selectielijst waar de gegevens uit een database worden gehaald. Nu wil ik graag met een leeg vakje beginnen in de lijst en wanneer je op het pijltje klikt van de lijst dat je dan pas de keuzes ziet. Hoe kan ik dit doen?
Mijn script is nu zo:
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
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
if (empty($_POST))
{
$query2 = mysql_query('SELECT klas, klasid FROM klassen') or die(mysql_error());
?>
<form action="" method="post">
<table>
<tr>
<td>Klas:</td>
<td><select name="klas">
<?php
while (list($klas, $klasid) = mysql_fetch_row($query2))
{
echo ("<option value='$klasid'>$klas</option>");
}
?>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="start" name="start"/></td>
</tr>
</table>
</form>
if (empty($_POST))
{
$query2 = mysql_query('SELECT klas, klasid FROM klassen') or die(mysql_error());
?>
<form action="" method="post">
<table>
<tr>
<td>Klas:</td>
<td><select name="klas">
<?php
while (list($klas, $klasid) = mysql_fetch_row($query2))
{
echo ("<option value='$klasid'>$klas</option>");
}
?>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="start" name="start"/></td>
</tr>
</table>
</form>
Gewijzigd op 06/06/2012 11:36:16 door Inge V
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<select name="klas">
<option selected="selected" value="">-- maak een keuze --</option>
<?php
while (list($klas, $klasid) = mysql_fetch_row($query2))
{
echo ("<option value='$klasid'>$klas</option>");
}
?>
</select>
<option selected="selected" value="">-- maak een keuze --</option>
<?php
while (list($klas, $klasid) = mysql_fetch_row($query2))
{
echo ("<option value='$klasid'>$klas</option>");
}
?>
</select>
Dus <option value=""></option> boven je php code?
Het is trouwens netter om je variabele buiten quotes te halen en je php boven je html te zetten.
Het totaal wordt dan:
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
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
if (empty($_POST))
{
$optionsList = '';
$klasQuery = mysql_query('SELECT klas, klasid FROM klassen');
if($klasQuery)
{
while ($result = mysql_fetch_assoc($klasQuery))
{
$optionsList .= '<option value="' . $result['klasid'] . '">' . $result['klas'] . '</option>' . PHP_EOL;
}
}
else
{
//doe je foutafhandeling van je query
}
?>
<form action="" method="post">
<table>
<tr>
<td>Klas:</td>
<td><select name="klas">
<option value="" > </option>
<?php echo $optionsList; ?>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="start" name="start"/></td>
</tr>
</table>
</form>
if (empty($_POST))
{
$optionsList = '';
$klasQuery = mysql_query('SELECT klas, klasid FROM klassen');
if($klasQuery)
{
while ($result = mysql_fetch_assoc($klasQuery))
{
$optionsList .= '<option value="' . $result['klasid'] . '">' . $result['klas'] . '</option>' . PHP_EOL;
}
}
else
{
//doe je foutafhandeling van je query
}
?>
<form action="" method="post">
<table>
<tr>
<td>Klas:</td>
<td><select name="klas">
<option value="" > </option>
<?php echo $optionsList; ?>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="start" name="start"/></td>
</tr>
</table>
</form>
Gewijzigd op 06/06/2012 11:41:38 door TJVB tvb
Belangrijke tips
1) Maak gebruik van een goede SQL fout afhandeling (Linkje).
2) Kijken of een formulier is verstuurd doe je niet door empty $_POST (if (empty($_POST)) { word dus if ($_SERVER['REQUEST_METHOD'] != 'post') {).
3) Bij de echo hoef je geen () te gebruiken. (echo ("test"); word dus echo 'test';).
4) Variabelen buiten quotes houden (echo "<option value='$klasid'>$klas</option>" ; word dus echo '<option value="'.$klasid.'">'.$klas.'</option>';).
5) Formulieren horen niet in tabellen.
Antwoord op je vraag
Voor je while lijst een lege <option> toevoegen.. dus:
Succes, en lees mijn tips even door en verbeter ze. Zo word je code beter en loop je later tegen minder problemen aan.
Gewijzigd op 06/06/2012 11:45:34 door Joakim Broden
Dankjewel allemaal, het heeft goed geholpen^^