Hallo mensen,

Ik ben nu bezig met een (vragen)formulier.
Hij bestaat uit dertig vragen, maar ik wil graag op elke pagina 5 vragen. Aan het eind van de dertig vragen moeten de antwoorden in 1 mail verstuurd worden naar mij.
Hoe doe ik dit? Ik ben er inmiddels achter dat het met hidden fields moet, maar hoe moet ik dit doen? Ik heb op google gezocht, maar geen goede tutorial of site gevonden waar het duidelijk uitgelegd word. Weet iemand een site, of kan misschien iemand het kort uitleggen?


Alvast bedankt,
Gerco
Sorry, maar ik begrijp het niet echt.. :s Heb heel die handleiding doorgenomen maar weet niet hoe ik het nou moet doen.. :s Moet ik nou bijvoorbeeld na de eerste vijf vragen op de link klikken naar de volgende pagina, en dan gelijktijdig die dingen opslaan in de array? Maar waar blijft die array dan? Ik snap het niet goed.. :s


Zou iemand misschien even kunnen kijken hoe ik dat zou moeten doen?

Het gaat over die formulier:
http://www.maastarenglish.com/niveautest.php

Hierbij heb ik deze php code:
<?php

// Function check email:
function email_validator($email)
{
if (eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$email))
{
$valid = true;
}
else
{
$valid = false;
}
return $valid;
}

$email = (email_validator($_POST['email'])) ? $_POST['email'] : false;
$name = $_POST['name'];
$telefoonnummer = $_POST['telefoonnummer'];
$tijd1a = $_POST['tijd1a'];
$tijd1b = $_POST['tijd1b'];
$tijd2a = $_POST['tijd2a'];
$tijd2b = $_POST['tijd2b'];
$soortcursus = $_POST['soortcursus'];
$vraagtest1 = $_POST['vraagtest1'];
$vraagtest2 = $_POST['vraagtest2'];
$vraagtest3 = $_POST['vraagtest3'];
$vraagtest4 = $_POST['vraagtest4'];
$vraagtest5 = $_POST['vraagtest5'];
$vraagtest6 = $_POST['vraagtest6'];
$vraagtest7 = $_POST['vraagtest7'];
$vraagtest8 = $_POST['vraagtest8'];
$vraagtest9 = $_POST['vraagtest9'];
$vraagtest10 = $_POST['vraagtest10'];
$vraagtest11 = $_POST['vraagtest11'];
$vraagtest12 = $_POST['vraagtest12'];
$vraagtest13 = $_POST['vraagtest13'];
$vraagtest14 = $_POST['vraagtest14'];
$vraagtest15 = $_POST['vraagtest15'];
$vraagtest16 = $_POST['vraagtest16'];
$vraagtest17 = $_POST['vraagtest17'];
$vraagtest18 = $_POST['vraagtest18'];
$vraagtest19 = $_POST['vraagtest19'];
$vraagtest20 = $_POST['vraagtest20'];
$vraagtest21 = $_POST['vraagtest21'];
$vraagtest22 = $_POST['vraagtest22'];
$vraagtest23 = $_POST['vraagtest23'];
$vraagtest24 = $_POST['vraagtest24'];
$vraagtest25 = $_POST['vraagtest25'];
$vraagtest26 = $_POST['vraagtest26'];
$vraagtest27 = $_POST['vraagtest27'];
$vraagtest28 = $_POST['vraagtest28'];
$vraagtest29 = $_POST['vraagtest29'];
$vraagtest30 = $_POST['vraagtest30'];

// your email address
$youremail = "[email protected]";

// field validation
if ($name=="" || $telefoonnummer=="" || $tijd1a=="" || $tijd1b=="" || $tijd2a=="" || $tijd2b=="" || $soortcursus=="" || $vraagtest1=="" || $vraagtest2=="" || $vraagtest3=="" || $vraagtest4=="" || $vraagtest5=="" || $vraagtest6=="" || $vraagtest7=="" || $vraagtest8=="" || $vraagtest9=="" || $vraagtest10=="" || $vraagtest11=="" || $vraagtest12=="" || $vraagtest13=="" || $vraagtest14=="" || $vraagtest15=="" || $vraagtest16=="" || $vraagtest17=="" || $vraagtest18=="" || $vraagtest19=="" || $vraagtest20=="" || $vraagtest21=="" || $vraagtest22=="" || $vraagtest23=="" || $vraagtest24=="" || $vraagtest25=="" || $vraagtest26=="" || $vraagtest27=="" || $vraagtest28=="" || $vraagtest29=="" || $vraagtest30=="" )

{
print ("<h1>Inschrijvingsfout</h1><p class=\"style1\">Vul alle velden in!</p>");
}

elseif ($email == false)
{
print("<h1>Inschrijvingsfout</h1><p class=\"style1\">Het door jouw ingevulde emailadres klopt niet!</p>");
}

else {

// send email
$headers = "From: \"$name\" <$email>\n";
$subject = "Inschrijfformulier cursussen";
$message = "Inschrijfformulier cursussen Maastar English.

De gegevens die ingevuld zijn:
Naam: $name
Telefoonnummer: $telefoonnummer
Tijdstippen van beschikbaarheid: Van $tijd1a:$tijd1b tot $tijd2a:$tijd2b
E-mailadres: $email
Soort cursus wat $name wil volgen: $soortcursus

De antwoorden die ingevuld zijn door $name:
Vraag 1 $vraagtest1
Vraag 2 $vraagtest2
Vraag 3 $vraagtest3
Vraag 4 $vraagtest4
Vraag 5 $vraagtest5
Vraag 6 $vraagtest6
Vraag 7 $vraagtest7
Vraag 8 $vraagtest8
Vraag 9 $vraagtest9
Vraag 10 $vraagtest10
Vraag 11 $vraagtest11
Vraag 12 $vraagtest12
Vraag 13 $vraagtest13
Vraag 14 $vraagtest14
Vraag 15 $vraagtest15
Vraag 16 $vraagtest16
Vraag 17 $vraagtest17
Vraag 18 $vraagtest18
Vraag 19 $vraagtest19
Vraag 20 $vraagtest20
Vraag 21 $vraagtest21
Vraag 22 $vraagtest22
Vraag 23 $vraagtest23
Vraag 24 $vraagtest24
Vraag 25 $vraagtest25
Vraag 26 $vraagtest26
Vraag 27 $vraagtest27
Vraag 28 $vraagtest28
Vraag 29 $vraagtest29
Vraag 30 $vraagtest30";

mail ("$youremail", "$subject", $message, $headers);
echo '<h1>Uw antwoorden en uw inschrijving zijn verstuurd!</h1><br />Hartelijk dank voor het doen van deze test, en het invullen van uw gegeven!<br /><br /><a href="../index.php">Klik hier om terug te keren naar de homepagina.</a>';
}
?>
<?php
session_start();

if(!isset($_SESSION['vragen']) || empty($_SESSION['vragen'])) {
$_SESSION['vragen'] = array();

$_SESSION['vragen'][] = array('Vraag 1', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 2', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 3', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
// enz.
}

if($_SERVER['REQUEST_METHOD'] == "POST") {
if(!empty($_POST['antw'])) {
foreach($_POST['antw'] as $iVraagKey => $iVraagAntw) {
if(!empty($iVraagAntw) && $iVraagAntw > 0)
$_SESSION['vragen'][$iVraagKey][2] = $iVraagAntw;
}
} else {
echo 'Geen antwoorden meegekregen.';
}
}

$aVragen = array();
$iTeller = 0;
$iCounter = count($_SESSION['vragen']);
foreach($_SESSION['vragen'] as $sKey => $aOpties) {
if($iTeller < 5) {
if($$aOpties[2] == 0) {
$aVragen[] = $sKey;
} else {
$iCounter--;
}
}
$iTeller++;
}

if($iCounter <= 0) {
// alles is ingevuld, verzend mail ofzo
}

// <html><head>doe je ding</head><body><form....> enz.

foreach($aVragen as $iVraag) {
echo 'Vraag: '.$_SESSION['vragen'][$iVraag][0].'<br />';

foreach($_SESSION['vragen'][$iVraag][1] as $iKey => $sAntwoord) {
echo '<input type="radio" name="antw['.$iVraag.']" value="'.$iKey.'" /> '.$sAntwoord.'<br />';
}
}

// </body></html>
?>

Nou, nu heb ik het grootste deel van de logica al gedaan. De rest doe je zelf maar.
Allereerst super bedankt hiervoor!!!

Moet ik dit document nou in de php code zetten die ik nu heb? Hoe roep ik deze dus aan? Moet ik dit dus na elke 5 vragen verzenden of hoe zit dat?

En moet ik hier dus allen maar vragen toevoegen? Verder niets in de code hoeven te wijzigen??:
$_SESSION['vragen'][] = array('Vraag 1', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 2', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 3', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde

Nogmaals heel erg bedankt! Ik hoop dat het gaat werken.. ;)


Gerco
Gerco schreef op 29.01.2009 17:38
Allereerst super bedankt hiervoor!!!

Moet ik dit document nou in de php code zetten die ik nu heb? Hoe roep ik deze dus aan? Moet ik dit dus na elke 5 vragen verzenden of hoe zit dat?

En moet ik hier dus allen maar vragen toevoegen? Verder niets in de code hoeven te wijzigen??:
$_SESSION['vragen'][] = array('Vraag 1', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 2', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 3', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde

Nogmaals heel erg bedankt! Ik hoop dat het gaat werken.. ;)


Gerco


Je me repeaté:
Nou, nu heb ik het grootste deel van de logica al gedaan. De rest doe je zelf maar.
Overigens kun je zelf ook even naar de code kijken of 'ie compleet is.
Jezpur schreef op 29.01.2009 17:44
[quote='Gerco schreef op 29.01.2009 17:38']Allereerst super bedankt hiervoor!!!

Moet ik dit document nou in de php code zetten die ik nu heb? Hoe roep ik deze dus aan? Moet ik dit dus na elke 5 vragen verzenden of hoe zit dat?

En moet ik hier dus allen maar vragen toevoegen? Verder niets in de code hoeven te wijzigen??:
$_SESSION['vragen'][] = array('Vraag 1', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 2', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde
$_SESSION['vragen'][] = array('Vraag 3', array(1=>'antwoord',2=>'antwoord',3=>'antwoord'), 0); // de 0 is wat de gebruiker invulde

Nogmaals heel erg bedankt! Ik hoop dat het gaat werken.. ;)


Gerco


Je me repeaté:
Nou, nu heb ik het grootste deel van de logica al gedaan. De rest doe je zelf maar.
Overigens kun je zelf ook even naar de code kijken of 'ie compleet is.[/quote]

Ik weet dat je dat inderdaad gezegd had, maar ik weet er zo weinig vanaf.. :S:(. Vandaar dat ik dat vraag...!

Begin dan eens wat makkelijker met bestaande scripts aanpassen naar jouw wensen, handleiding/tutorials/e.d. lezen, analyseer scripts, en ga zo nog maar even door tot je op eigen houtje een behoorlijk script zoals dit kunt schrijven. De logica is echt niet moeilijk, het vergt alleen wat kennis. En als je die kennis niet hebt, is het te hoog gegrepen en kun je beter een paar stappen teruggaan om bij te leren.

Reageren