Keep radio buttons checked na submit
Heb een formulier waarin een email en radio submit zit.
Nu zou ik willen dat zowel de email value als de geselecteerde radio button checked blijft na submit van de form.
Nu is dat voor email gelukt, maar hoe doe ik dit voor de radio buttons?
Huidige code:
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
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
<?php
// define variables with the value for each field
// the value from POST, if this exist, or an empty value
$email = isset($_POST['email']) ? $_POST['email'] : '';
$fhtml = '
<form id="contact-form" action="send.php" method="post">
<label>
<span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" value="'. $email. '">
<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd">
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd">
<label for="item6">3 Jaar</label>
</label>
</form> ';
echo $fhtml; ?>
// define variables with the value for each field
// the value from POST, if this exist, or an empty value
$email = isset($_POST['email']) ? $_POST['email'] : '';
$fhtml = '
<form id="contact-form" action="send.php" method="post">
<label>
<span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" value="'. $email. '">
<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd">
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd">
<label for="item6">3 Jaar</label>
</label>
</form> ';
echo $fhtml; ?>
Gewijzigd op 19/01/2015 10:50:49 door Johan Vels
checked toe.
<input id="item6" value="3 jaar" type="radio" name="tijd">
wordt:
<input checked id="item6" value="3 jaar" type="radio" name="tijd">
Daarvoor voeg je het attribuut <input id="item6" value="3 jaar" type="radio" name="tijd">
wordt:
<input checked id="item6" value="3 jaar" type="radio" name="tijd">
Dat is dus niet helemaal wat ik bedoel.
Wil graag dat de radio button die geselecteerd is (2 keuzes) VOOR de submit NA de submit checked blijft. Zoals dat nu ook bij $email gebeurd, deze blijft NA submit de ingevulde value behouden met isset($_POST['email']) ? $_POST['email'] : '';
Maar hoe pas ik dat toe binnen de $fhtml = '';
Code (php)
Of korter:
Code (php)
1
2
3
2
3
<?php
$html = '<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>';
?>
$html = '<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>';
?>
Gewijzigd op 19/01/2015 12:14:14 door Joakim Broden
Top! super bedankt.
Sabaton Joakim op 19/01/2015 12:13:51:
Ward waarom dubbele code?
Code (php)
1
2
3
2
3
<?php
$html = '<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>';
?>
$html = '<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>';
?>
Prefereer toch de laatste optie van Ward. Beter leesbaar, beter uitbreidbaar, betere code.
Valt dit ook te combineren met dubbele checkboxes dus geschreven als checkbox[]
Code (php)
Toevoeging op 19/01/2015 14:52:29:
Wes is back op 19/01/2015 13:28:01:
Prefereer toch de laatste optie van Ward. Beter leesbaar, beter uitbreidbaar, betere code.
Ieder zijn mending ik vind die code van Ward juist snert code.
Code (php)
vind ik dus totaal niet leesbaar. Vooral als je heel veel HTML moet toevoegen aan $fhtml zoals de topic start wil. Met de code van Ward zal het een heel onoverzichtigelijke code worden.
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
33
34
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
33
34
<?php
$fhtml = '<form id="contact-form" action="send.php" method="post">
<label><span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" ';
if (isset($_POST['email'])) {
$fhtml .= 'value="'.$_POST['email'].'" ';
}
$fhtml .= '<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd"';
if (isset($_POST['tijd']) && $_POST['tijd'] == '1 jaar') {
$fhtml .= 'checked="checked" ';
}
$fhtml .= ' >
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd"';
if (isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar') {
$fhtml .= 'checked="checked" ';
}
$fhtml .= '>
<label for="item6">3 Jaar</label>
</label>
</form> ';
?>
$fhtml = '<form id="contact-form" action="send.php" method="post">
<label><span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" ';
if (isset($_POST['email'])) {
$fhtml .= 'value="'.$_POST['email'].'" ';
}
$fhtml .= '<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd"';
if (isset($_POST['tijd']) && $_POST['tijd'] == '1 jaar') {
$fhtml .= 'checked="checked" ';
}
$fhtml .= ' >
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd"';
if (isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar') {
$fhtml .= 'checked="checked" ';
}
$fhtml .= '>
<label for="item6">3 Jaar</label>
</label>
</form> ';
?>
Dit is toch niet leesbarder of makkelijker uibrader dan:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$fhtml = '<form id="contact-form" action="send.php" method="post">
<label><span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'" >
<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '1 jaar' ? 'checked="checked"' : '').'>
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>
<label for="item6">3 Jaar</label>
</label>
</form> ';
?>
$fhtml = '<form id="contact-form" action="send.php" method="post">
<label><span>E-mailadres*</span>
<input type="email" name="email" tabindex="14" id="email" value="'.(isset($_POST['email']) ? $_POST['email'] : '').'" >
<button type="submit" formaction="index.php#form-anchor">Check E-mailadres</button>
<label>
<label>
<span>Tijd</span>
<input id="item5" value="1 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '1 jaar' ? 'checked="checked"' : '').'>
<label for="item5">1 Jaar</label>
<input id="item6" value="3 jaar" type="radio" name="tijd" '.(isset($_POST['tijd']) && $_POST['tijd'] == '3 jaar' ? 'checked="checked"' : '').'>
<label for="item6">3 Jaar</label>
</label>
</form> ';
?>
Maar dit is voor mij weer onleesbaar:
Sabaton Joakim op 19/01/2015 14:43:29:
Dit is toch niet leesbarder of makkelijker uibrader dan:
Vooral die uibrader???
Gewijzigd op 19/01/2015 15:15:05 door - SanThe -
Bedankt Ward en Joakim :)