Radio check onthouden in form
Ik ben al een tijdje bezig met het produceren van een online enquête..
Mijn script is in beginsel gebaseerd op het script uiteengezet hier: http://www.phphulp.nl/php/scripts/2/954/. Alleen zodanig uitgebreid dat er meerdere vragen per pagina kunnen worden gezet plus meerdere types of vragen(radio en text ).
De enquete bestaat uit ± 29 pagina´s en bestaat voor het grootste deel uit radio type vragen(5 radio type vragen per pagina).
Nu wil ik een check doen of alle vragen zijn ingevuld en na goedkeuring pas de volgende pagina laden. Bij een onvolledig ingevulde pagina een error melding geven. ....Tot zover lukt het allemaal, alleen het probleem komt met het onthouden van de reeds geklikte radio type vragen. Zodra ik volgende pagina kies maar bijv. 3 vd 5 vragen zijn aangeklikt, dan wil ik dat de reeds daarvoor aangeklikte antwoorden blijven staan.
Kan iemand mij op weg helpen.
misschien per pagina verzenden naar database?
Sessie's bijvoorbeeld.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['pag1'] = $_POST['keuze1'];
}
?>
session_start ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['pag1'] = $_POST['keuze1'];
}
?>
Pagina twee verwijst weer naar pagina drie en daar doe je:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
session_start ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['pag2'] = $_POST['keuze2'];
}
?>
session_start ();
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$_SESSION['pag2'] = $_POST['keuze2'];
}
?>
Enzovoort, tot je bij de laatste pagina komt.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<form method="POST" action="#">
<label><input type="radio" name="test" value="1"<?php echo ((isset($_POST['test']) && $_POST['test'] == 1) ? ' CHECKED' : '') ?> /> Waarde</label><br />
<label><input type="radio" name="test" value="2"<?php echo ((isset($_POST['test']) && $_POST['test'] == 2) ? ' CHECKED' : '') ?> /> Waarde 2</label><br />
<br />
<button type="submit">Test!</button>
</form>
<label><input type="radio" name="test" value="1"<?php echo ((isset($_POST['test']) && $_POST['test'] == 1) ? ' CHECKED' : '') ?> /> Waarde</label><br />
<label><input type="radio" name="test" value="2"<?php echo ((isset($_POST['test']) && $_POST['test'] == 2) ? ' CHECKED' : '') ?> /> Waarde 2</label><br />
<br />
<button type="submit">Test!</button>
</form>
Maar ik denk dat je me wel op het goede spoor hebt gezet..Ga eens iets met de sessie VARS proberen, miss iets met eem cookie?
Cookie zou ik niet doen, tenslotte kunnen die uit staan aan de kant van de user. Probeer gewoon mijn voorbeeld eens uit.
@PHP Newbie: ziet er ook logisch uit.
Ik met allebei ff aan de slag en laat jullie weten of het lukt OF niet:)
gr
WebRtistik schreef op 21.07.2008 00:35:
$_session['pageID']
Wel altijd met hoofdletters. $_SESSION['...']
Uiteindelijk gebruik ik de methode die PHP Newbie als tip gaf. Het werkt op firefox3, maar IE6 en 7 niet. Om IE ook te strelen ipv 'CHECKED', checked="checked".