Hallo,

Voor school ben ik bezig met een project om een enquete te ontwikkelen. Dat is natuurlijk geen probleem, maar nou is de bedoeling dat deze enquete online kan worden gezet, en dat er bepaalde conclusies worden getrokken bij elke “uitslag”.

Ik zal het proberen wat nader toe te lichten aan de hand van een klein voorbeeld:

Er zijn 9 categorien met vragen, die elk op een aparte pagina moeten worden weergegeven. Het zijn allemaal ja/nee vragen, die met een zgn. radio-button worden beantwoord (dus er kan maar 1 vraag worden aangeklikt). Als 0-25% van de antwoorden ‘ja’ is, is conclusie A van toepassing. Als 26-50% van de antwoorden ‘ja’ is, is conclusie B van toepassing. Enzovoorts.

Nou is het dus de bedoeling dat, zodra een gebruiker de laatste categorie heeft ingevuld, dat er dus conclusies op het scherm worden weergegeven van alle 9 categorien. Er moet in het begin NAW-gegevens worden ingevoerd.

Ik denk dat het ongeveer zo moet werken: Iemand vult zijn gegevens in, die worden opgeslagen in een database. Vervolgens begint hij aan de 1e categorie. Deze vragen worden ingevuld en op het eind klikt hij op ‘verder’ o.i.d. Hiermee wordt de conclusie van categorie 1 “berekend” en in de database gezet, onder de tabel 1. Hetzelfde geldt voor de 2e categorie: De vragen worden beantwoord, en op het eind wordt de conclusie in de database gezet en wordt er verder gegaan naar de volgende categorie. En zo gaat dat dus door tot dat alle 9 categorien zijn ingevuld. Dan verschijnt op de volgende pagina een overzicht met de verschillende conclusies, die worden opgehaald uit de database.

Goed, ik weet het allemaal heel goed te vertellen, maar heb niet de technische kennis om het ook te realiseren. Is er iemand die tips/suggesties heeft voor mij?

Alvast bedankt.
Okee, mooi zo.

Nu moeten we gaan zorgen dat de informatie van je formulier in je tabel terecht komt.

Als het formulier verzonden wordt, kun je in de pagina enquete.php de waardes ophalen. Dat doe je zo:

<?php
// waardes van het formulier ophalen
if (isset ($_POST['verzenden'])) {
// korte namen maken, leest lekkerder
$naam_bedrijf = $_POST['naam_bedrijf'];
... hieronder zelf de rest invullen
}
?>
Ok, ik zal even posten wat ik tot nu toe heb.

* gegevens.php


<?php
// gegevensformulier
<form method="post">

<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>

<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>

<p>Functie:
<input id="functie" name="functie" type="text">
</p>

<p>E-mailadres:
<input id="email" name="email" type="text">
</p>

<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>

<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


</form>
?>


* enquete.php


<?php
// waardes van het formulier ophalen
if (isset ($_POST['verzenden'])) {
// korte namen maken, leest lekkerder
$naam_bedrijf = $_POST['naam_bedrijf'];
$naam_contactpersoon = $_POST['naam_contactpersoon'];
$functie = $_POST['functie'];
$email = $_POST['email'];
$telefoon = $_POST['telefoon'];
}
?>


Loop ik tot nu toe bij of mis ik iets?
Nog een vraag over de 'gegevens.php':

Hoe kan ik de ingevoerde gegevens in de database zetten? Het lijkt me dat er een of andere code onder de 'verzend'-knop moet komen, maar weet iemand welke of kan iemand mij een beetje op weg helpen?

Alvast bedankt.
okey, ik heb dit ook gebruikt en geleerd^^
maar hoe zet in in de enquete:

bedankt voor het invullen van de enquete.

zonder dat ik al andwoorden zie, want die zie ik dan in de data base

Jaap schreef op 24.10.2005 10:44
Nog een vraag over de 'gegevens.php':

Hoe kan ik de ingevoerde gegevens in de database zetten? Het lijkt me dat er een of andere code onder de 'verzend'-knop moet komen, maar weet iemand welke of kan iemand mij een beetje op weg helpen?

Alvast bedankt.


Dat in de database zetten doe je nadat het formulier verzonden is, op de tweede pagina.

Je moet eerst een connectie maken met de database:

<?php
error_reporting (E_ALL);

$db_host = 'xxxx'; // eigen waardes invullen
$db_user = 'xxxx';
$db_pass = 'xxxx';
$db_name = 'xxxx';

mysql_connect ($db_host, $db_user, $db_pass);
@mysql_select_db ($db_name) or die ('Fout bij het selecteren van de database');

unset ($db_host);
unset ($db_user);
unset ($db_pass);
unset ($db_name);
?>
Jaap schreef op 20.10.2005 16:30


* gegevens.php


<?php
// gegevensformulier
<form method="post">

<p>Naam bedrijf:
<input id="naam_bedrijf" name="naam_bedrijf" type="text">
</p>

<p>Naam contactpersoon:
<input id="naam_contactpersoon" name="naam_contactpersoon" type="text">
</p>

<p>Functie:
<input id="functie" name="functie" type="text">
</p>

<p>E-mailadres:
<input id="email" name="email" type="text">
</p>

<p>Telefoonnummer:
<input id="telefoon" name="telefoon" type="text">
</p>

<p><input id="verzenden" name="verzenden" type="submit" value="verzenden"></p>


</form>
?>



<form method="post" action="enquete.php">

zo moet dat zijn je pagina moet een doel hebben
Daarna kun je gegevens toevoegen met een INSERT query. Die ziet er zo uit:

<?php
$sql = "
INSERT INTO tabelnaam
(veld1, veld2, veld3)
VALUES
('$waarde1', '$waarde2', '$waarde3')
";
mysql_query ($sql) or die (mysql_error ());
?>

De waardes zijn de waardes uit je formulier en de velden de namen van je kolommen in de tabel.

Je moet natuurlijk alleen waardes gaan toevoegen als het formulier ook echt verzonden is. Dat controleer je met

<?php

if ( $_SERVER['REQUEST_METHOD'] == 'POST') {
// waardes van het formulier controleren en invoegen in de database
}
?>
en dan \".$_POST[\'waarde1\'].\"

als het goed is...

Maar als ik op de verzend knop druk van de gegevens.php dan krijg ik de andwoorden te zien. en dat gaat ook nog naar me data base die het doet.

maar in de plaats van die andwoorden op enquete.php wil ik \'dank u wel\' neer zetten.

hoe doe k dat

alvast bedankt
Het toevoegen van de gegevens in de database is gelukt. Nu wil ik verder naar de volgende stap: Het doorlopen van de enquete en het opslaan van de antwoorden in de database. Het zijn allemaal ja/nee vragen, waarbij maar 1 antwoord mogelijk is. Ik wil graag met radiobuttons werken, en daarbij heb ik het volgende gemaakt:

<tr>
<td>Vraag 1</td>
<td><form name="form1" method="post" action="">
<input name="radiobutton" type="radio" value="radiobutton">
ja
</form>
<form name="form2" method="post" action="">
<input name="radiobutton" type="radio" value="radiobutton">
nee
</form></td>
</tr>
<tr>
<td>Vraag 2</td>
<td><form name="form1" method="post" action="">
<input name="radiobutton" type="radio" value="radiobutton">
ja
</form>
<form name="form2" method="post" action="">
<input name="radiobutton" type="radio" value="radiobutton">
nee
</form></td>
</tr>

enz.

Nu heb ik het probleem dat allebei de buttons aangeklikt kunnen worden.... dus als 'ja' is aangeklikt, kan 'nee' ook nog aangeklikt worden. Iemand enig idee hoe ik dat kan verhelpen?
Hallo Jaap,

je hoeft hier maar één form te gebruiken, dus

<form>
<input name="vraag1" type="radio" value="ja">
<input name="vraag1" type="radio" value="nee">

<input name="vraag2" type="radio" value="ja">
<input name="vraag2" type="radio" value="nee">

<input name="vraag3" type="radio" value="ja">
<input name="vraag3" type="radio" value="nee">
</form>

en dan daartussen natuurlijk de tekst van de vragen en lay-out dingetjes.

Reageren