checkbox onthouden met $_POST lukt niet
Wat ik ook doe met onderstaande code, bij het opnieuwe weergeven van het formulier (na een post) is het vakje gewoon aangevinkt.
Ik wil dus graag:
- Bij het eerste keer weergeven van het formulier: checked
- Bij het opnieuw weergeven: de gemaakte keuze.
Kan iemand me op weg helpen?
Bedankt!
Code (php)
Gewijzigd op 14/12/2010 16:16:55 door Peter van den Dungen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
// onthouden radio buttons
$titel = (empty($_POST['titel']) ? '' : $_POST['titel']);
echo '
<form action="" method="post">
<input type="radio" name="titel" value="m" '. ($titel == 'm' ? 'checked="checked" ' : '' ).'/> Dhr. <br/>
<input type="radio" name="titel" value="v" '. ($titel == 'v' ? 'checked="checked" ' : '' ).'/> Mevr. <br/>
<input type="submit" value="GO"/>
</form>
';
?>
// onthouden radio buttons
$titel = (empty($_POST['titel']) ? '' : $_POST['titel']);
echo '
<form action="" method="post">
<input type="radio" name="titel" value="m" '. ($titel == 'm' ? 'checked="checked" ' : '' ).'/> Dhr. <br/>
<input type="radio" name="titel" value="v" '. ($titel == 'v' ? 'checked="checked" ' : '' ).'/> Mevr. <br/>
<input type="submit" value="GO"/>
</form>
';
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
// onthouden checkbox
echo '
<form action="" method="post">
<input type="checkbox" name="terms" '. (!empty($_POST['terms']) ? 'checked="checked" ' : '' ) .'/> I accept the terms ... <br/>
<input type="checkbox" name="newsletter" '. (!empty($_POST['newsletter']) ? 'checked="checked" ' : '' ) .'/> I want to recieve newsletters ... <br/>
<input type="submit" value="GO"/>
</form>
';
?>
// onthouden checkbox
echo '
<form action="" method="post">
<input type="checkbox" name="terms" '. (!empty($_POST['terms']) ? 'checked="checked" ' : '' ) .'/> I accept the terms ... <br/>
<input type="checkbox" name="newsletter" '. (!empty($_POST['newsletter']) ? 'checked="checked" ' : '' ) .'/> I want to recieve newsletters ... <br/>
<input type="submit" value="GO"/>
</form>
';
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// onthouden select box
$fruit = (empty($_POST['fruit']) ? '' : $_POST['fruit']);
echo '
<form action="" method="post">
<select name="fruit">
<option value="appel" '. ($fruit == 'appel' ? 'selected="selected" ' : '' ).'>Appel</option>
<option value="peer" '. ($fruit == 'peer' ? 'selected="selected" ' : '' ).'>Peer</option>
<option value="citroen" '. ($fruit == 'citroen' ? 'selected="selected" ' : '' ).'>Citroen</option>
</select>
<input type="submit" value="GO"/>
</form>
';
?>
// onthouden select box
$fruit = (empty($_POST['fruit']) ? '' : $_POST['fruit']);
echo '
<form action="" method="post">
<select name="fruit">
<option value="appel" '. ($fruit == 'appel' ? 'selected="selected" ' : '' ).'>Appel</option>
<option value="peer" '. ($fruit == 'peer' ? 'selected="selected" ' : '' ).'>Peer</option>
<option value="citroen" '. ($fruit == 'citroen' ? 'selected="selected" ' : '' ).'>Citroen</option>
</select>
<input type="submit" value="GO"/>
</form>
';
?>
Nu is de checkbox niet gechecked als er nog geen POST is.
In jouw geval kan je zo-iets doen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
$_POST['terms'] = 'on';
}
// onthouden checkbox
echo '
<form action="" method="post">
<input type="checkbox" name="terms" '. (!empty($_POST['terms']) ? 'checked="checked" ' : '' ) .'/> I accept the terms ... <br/>
<input type="submit" value="GO"/>
</form>
';
?>
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
$_POST['terms'] = 'on';
}
// onthouden checkbox
echo '
<form action="" method="post">
<input type="checkbox" name="terms" '. (!empty($_POST['terms']) ? 'checked="checked" ' : '' ) .'/> I accept the terms ... <br/>
<input type="submit" value="GO"/>
</form>
';
?>
Gewijzigd op 15/12/2010 02:01:18 door Kris Peeters