Timmy Ownage
Gebruiker
- Lid geworden
- 11 jan 2008
- Berichten
- 60
Hallo,
Ik heb een script om enquêtes mee af te nemen. Deze werkt alleen met radiobuttons. Ik wil nu echter ook de mogelijkheid hebben om invulvelden te krijgen. Ik heb dus een aantal vragen in mijn database staan, maar ik wil bij vraag 1 en 3 een invulveld krijgen. De andere vragen zijn gesloten. Mijn script is als volgt:
En om de vragen en antwoorden weer te geven op het scherm:
Is dit mogelijk? Het doel is dus dat ik gesloten vragen heb die gelezen worden uit een database. Bij 2 vragen wil ik echter een invulveld krijgen, maar ik weet niet hoe ik dat zou moeten programmeren. Graag ontvang ik jullie reacties!
Ik heb een script om enquêtes mee af te nemen. Deze werkt alleen met radiobuttons. Ik wil nu echter ook de mogelijkheid hebben om invulvelden te krijgen. Ik heb dus een aantal vragen in mijn database staan, maar ik wil bij vraag 1 en 3 een invulveld krijgen. De andere vragen zijn gesloten. Mijn script is als volgt:
PHP:
<?php
session_start(); // Begin de sessie
include "config.php"; // Gebruik config.php
$aantal_vragen = mysql_num_rows(mysql_query("SELECT id FROM vragen")); // Hoeveel entries zijn er in de database?
if($_POST['volgende'] && $_SESSION['vraagnr'] != '' && $_POST['vraag'.$_SESSION['vraagnr']] != '') // Als er op de knop gedrukt wordt, controleer de vraag en ga zo mogelijk naar de volgende vraag
{
if($_POST['vraag1']) // Als er bij vraag1 op volgende wordt gedrukt...
$_SESSION['antwoordjes'] = $_POST['vraag1']; // Onthoud de antwoorden
else // Anders
$_SESSION['antwoordjes'] .= '|'.$_POST['vraag'.$_SESSION['vraagnr']]; // Onthoud de antwoorden voor de andere vragen
$_SESSION['vraagnr']++; // Ga naar de volgende vraag
}
if($_POST['vraag'.$aantal_vragen] != '' && $_SESSION['vraagnr'] >= ($aantal_vragen + 1)) // Als alle vragen beantwoord zijn...
{
mysql_query("INSERT INTO antwoorden (ip,antwoorden,datum) VALUES ('".$_SERVER['REMOTE_ADDR']."','".$_SESSION['antwoordjes']."',NOW())"); // Schrijf de antwoorden naar de database
session_destroy(); // Stop de sessie
header("Location: bedankt.php"); // Ga naar de bedankt-pagina
}
if($_SESSION['vraagnr'] == '' || $_SESSION['vraagnr'] >= ($aantal_vragen + 1)) // Als er geen sessie is of de sessie is groter dan alle vragen + 1 (die bestaat dus niet)
{
$vraag = 1; // De vraag is nummer 1
$_SESSION['vraagnr'] = $vraag; // Ga naar vraag 1
}
else // Anders
$vraag = $_SESSION['vraagnr']; // We zijn bij de vraag die aangeduid wordt in de sessie
$data = mysql_fetch_array(mysql_query("SELECT vraag,antwoorden FROM vragen WHERE id='".$vraag."'")); // Informatie laden van de database...
$antwoorden = explode('|',$data['antwoorden']); // De antwoorden zijn alle informatie uit de database antwoorden zonder het teken |
$vraag = stripslashes($data['vraag']); // Verwijder de aanhalingstekens
?>
En om de vragen en antwoorden weer te geven op het scherm:
PHP:
<strong><?php echo $vraag; ?></strong>
<form method="post" action="enquete.php">
<?php
$nummer = 1;
foreach($antwoorden as $antwoord)
{
echo '<input type="radio" name="vraag'.$_SESSION['vraagnr'].'" value="'.$nummer.'" id="antwoord'.$nummer.'" /><label for="antwoord'.$nummer.'">'.$antwoord.'</label><br />';
$nummer++;
}
?>
Is dit mogelijk? Het doel is dus dat ik gesloten vragen heb die gelezen worden uit een database. Bij 2 vragen wil ik echter een invulveld krijgen, maar ik weet niet hoe ik dat zou moeten programmeren. Graag ontvang ik jullie reacties!