Automatische enquete

Status
Niet open voor verdere reacties.

sjaaky55

Gebruiker
Lid geworden
5 jun 2010
Berichten
52
Hallo,
Ik moet een automatische enquete maken. Ik ben van plan de enquete op een site te zetten. En dan moeten de uitkomsten in excel komen. Hoe moet ik dit programmeren met php? Of moet dit met html? Kan iemand vertellen hoe ik hier mee moet beginnen?

Alvast bedankt
 
Dat kan wel met PHP/SQL.

Als het puur om de enquete gaat kun je er natuurlijk ook gewoon eentje online maken, er zijn genoeg sites die dat aanbieden.

Als je het zelf wilt maken, dan zou ik beginnen met een paar tutorials PHP/SQL. Je zult een enquete moeten maken, een klein scriptje moeten hebben die je door de vragen heenleidt en die de antwoorden op elke vraag opslaat met een sessie-id erbij zodat je alle antwoorden van een persoon kunt zien, en daarna een export scriptje die de SQL database exporteert naar iets dat je in Excel kunt inladen.

Waarom je het in Excel wilt is me een raadsel overigens, SQL is veel geschikter waarschijnlijk... maar het is afhankelijk van wat je met je gegevens wil doen :)
 
Bedankt voor je antwoord. Dan laat ik dat excel wel zitten.
SQL begrijp ik al wel redelijk, daar heb ik al eerder meegewerkt.
Maar waar moet ik mee beginnen? Ik denk dat ik eerst met PHP de vragen
met meerkeuze antwoord moet invoeren in een interface?
PHP heb ik nog totaal geen ervaring mee, dus hier ga ik inderdaad wel een tutorial over lezen.

Alvast bedankt
 
Mijn leraar vertelde me dat ik de enquete wel met HTML kon maken.
Dat heb ik gedaan. Maar ik zit nu al vast.
Ik stel de eerst vraag, dan moet je het antwoord aanvinken.
Dan wil ik een een knop die naar de volgende vraag gaat en tegelijkertijd het antwoord opslaat. Zodat ik dit met SQL in database kan zetten.
Maar dit gaat fout. De knop gaat niet naar de volgende vraag en ik weet ook niet waar hij het antwoord opslaat.
Hoe moet dit?
Database als bijlage*Bekijk bijlage Enquete.rar
 
Heb je een PHP script? Anders wordt er niks opgeslagen. Naar de volgende pagina is nog wel te overzien door het ACTION attribuut van je <form> te verwijzen naar je volgende pagina, maar je zult toch PHP nodig hebben om dingen te bewaren.
 
Maar ik kan dit html script toch in PHP gebruiken?
Kun je misschien voordoen hoe ik het antwoord opsla en volgende pagina?
 
Ik neem aan dat je werkt met formulieren in HTML en dan gebruik maakt van <input>-tags.

Bij de <input>-tag moet je een 'name'-, die uniek is, en een 'value'-attribuut hebben
Op basis van deze 'name'-attribuut kan je zoeken en zo de 'value' die ingevoerd is, ophalen.

Een voorbeeld zegt meer dan woorden:
HTML:
<html>
...
<body>
<form action='php-script.php' method='post'>
...
<input type='text' name='textbox1' value='' />
...
<input type='submit' name='submit_question' value='Volgende Vraag' />
</form>
</body>
</html>

Het uitlezen en opslaan kan je doen in een PHP-script bijvoorbeeld:
PHP:
<?php
if (isset($_POST['submit_question']))         // Je kijkt hier of de submit knop is ingedrukt
{
    $textbox1_value = $_POST['textbox1'];    // Let hierbij op dat je de juiste unieke naam op geeft
}
?>

Deze waarde van "$textbox1_value" kan je dan opslaan in een Session zoals Frats al zei

Hoop dat dit je kan helpen
groeten vreugde
 
Oke dus ik kan gewoon de enquete zelf in html maken?
Alleen dan heb ik dus met PHP een kopeling maken om naar SQL te gaan.
Maar kun je misschien even mijn html enquete bekijken? Want het lukt mij niet om
met de knop "Ga naar vraag 2" naar vraag 2 te gaan, en tegelijkertijd het antwoord op te slaan.
Maar dit opslaan moet dus met php, zou je hiervan 1 vraag kunnen voordoen (in mijn script)? Met uitleg? Want ik snap niet hoe ik in mijn script moet koppelen.
 
Oke harstikke bedankt! Hier schiet ik veel mee op.
Ik zou het thuis nog even verder bestuderen.
Maar is er ook een reden voor waarom vraag 1 html bestand is en vraag 2 php?
Of is vraag 1 nog niet volledig?
Ik denk dat ik dus de vragen 3,4,5,6 enz op de manier zoals vraag 2 moet doen toch?

En het bestand action is dus puur voor het ophalen van de antwoorden?

Bedankt
 
Vraag 1 is een HTML bestand omdat deze geen PHP actie uitvoert, uiteraard kan je er ook een PHP bestand van maken, maar dat is dan vrij nutteloos als er geen PHP-code in verwerkt zit.

Je moet inderdaad alle andere vragen afleiden van de opbouw van vraag 2

En het action.php bestand is inderdaad om alle vragen te verwerken en vanaf daar alles centraal in een database te plaatsten

groeten vreugde
 
Okee het script is nu af volgens mij. Alleen moet ik nu nog zorgen dat hij tabellen maakt in phpMyAdmin. Ik heb al een database in phpmyadmin, maar ik snap dat niet echt. Ik zou nog wel even door zoeken naar phpmyadmin tutorials, alleen tot nu toe kom ik daar niet uit. Ik hoop als 1 van jullie kan helpen.
 
Het ligt volgens mij eerder aan wat voor Database in PHPMyAdmin gebruikt wordt, en 9 van de 10 keer is dit MySQL.

Dus ik zou dan tutorials van MySQL zoeken,

Zelf weet ik niet wat jij in de database wilt zetten en hoe je dit eruit wilt halen dus kan ik daar niet mee verder helpen voor nu
 
Ik moet gewoon een tabelletje maken, die aangeeft hoe vaak er wat op elke vraag geantwoord is. Indien mogelijk zou ik hiervan dan een grafiek maken in excel.
 
Je kunt in phpMyAdmin, als je de database selecteert, gewoon de "Create table" knop oid aanklikken en dan kun je opgeven welke velden je in je tabel wilt hebben; als die overeenkomen met de velden die je script nodig heeft om de data op te slaan dan moet het goed zijn ;)

Maar hoe weet je dat het script werkt als je het nog nooit getest hebt?
 
Okee ik heb dat dus ook geprobeerd maar het werk niet.
Dit zijn de scripts, vraag 3 tm 9 is gewoon hetzelfde als vraag 2.
Plaatje van tabel phpadmin zit er ook bij: naamloos.jpg

Action:
PHP:
<?php
if (isset($_POST["vraag10.php"]))
{
	// Haal alle antwoorden op
	$antwoord1 = $_POST["vraag1_antwoord"];
	$antwoord2 = $_POST["vraag2_antwoord"];
	$antwoord3 = $_POST["vraag3_antwoord"];
	$antwoord4 = $_POST["vraag4_antwoord"];
	$antwoord5 = $_POST["vraag5_antwoord"];
	$antwoord6 = $_POST["vraag6_antwoord"];
	$antwoord7 = $_POST["vraag7_antwoord"];
	$antwoord8 = $_POST["vraag8_antwoord"];
	$antwoord9 = $_POST["vraag9_antwoord"];
	$antwoord10 = $_POST["vraag10_antwoord"];

	// Maak connectie met een database van jou, 
//waarbij gebruikersnaam "username" is en wachtwoord "password" is.
	$mysql_link = mysql_connect("localhost", "marishome_nl", "*****") or die(mysql_error()); 
	// Selecteer de database waarin je wilt werken, waarbij deze de naam "database_name" heeft.
	$mysql_db = mysql_select_db("marishome_nl")or die(mysql_error());
	
	// Maak een query voor je database met een tabel naam van "table_name"
	$query = "INSERT INTO `table_name` (`id`, `vraag1`, `vraag2`, 'vraag3', 'vraag4', 'vraag5', 'vraag6', 'vraag7', 'vraag8', 'vraag9', 'vraag10') VALUES (NULL, '$antwoord1', '$antwoord2', '$antwoord3', '$antwoord4', '$antwoord5', '$antwoord6', '$antwoord7', '$antwoord8', '$antwoord9', '$antwoord10');";
		$result = mysql_query($query) or die(mysql_error());
	}
?>

<html>
<body style="background-color:yellow">

<h1>Automatische enquete</h1>
<p>Dank je wel voor het invoeren van de Automatisch Enquete </p>

</body>
</html>

Vraag1:
PHP:
<html>
<body style="background-color:yellow">

<p><i>Vraag 1: Hoe vaak kom je in Kiri? </i></p>

<!-- Je hebt een formulier die altijd een action- en method- attribuut nodig heeft
	action:	de actie die uitgevoerd moet worden nadat de gebruiker op de Submit-knop heeft gedrukt.
	method:	De methode van het versturen die je wilt gebruiken. Kan alleen GET of POST zijn.
	
	Verschil tussen GET en POST:
		GET:	Hiermee krijg je de informatie in de URL-bar te zien -> www.test.nl/index.html?test_waarde=JEUJ
		POST:	Hiermee blijft de informatie die verzonden wordt, onzichtbaar voor de gebruiker, is altijd de voorkeur bij formulieren
		
	Zoals je kan zien heb ik de action gezet op vraag2.php. Dit is een PHP bestand waar vraag 2 staat beschreven.
	Dit is tevens de link naar vraag 2 en hoef je geen anchors (<a>-tags) te gebruikern. -->
<form action="vraag2.php" method="post">

<input type="radio" name="vraag1_antwoord" value="Minder dan 1x per maand" /> Minder dan 1x per maand <br />
<input type="radio" name="vraag1_antwoord" value="1x per maand" /> 1x per maand <br />
<input type="radio" name="vraag1_antwoord" value="1x per 2 weken" /> 1x per 2 weken <br />
<input type="radio" name="vraag1_antwoord" value="elke week" /> Elke week<br />
<input type="radio" name="vraag1_antwoord" value="meerdere keren per week" /> Meerdere keren per week <br />
<input type="radio" name="vraag1_antwoord" value="nooit" /> Nooit <br />

<!-- De Submit-knop moet je altijd een name-attribuut toevoegen, die uniek is.
	M.b.v. de name-attribuut kan je het antwoord later ophalen bij vraag 2. -->
<input type="submit" name="vraag1" value="Volgende Vraag" />

</form>
</body>
</html>

Vraag2:
PHP:
<?php
// Doordat dit een PHP bestand is, wordt deze vaak begonnen met de php openings-tag zoals hierboven.

// Omdat bij vraag1.html de form method op POST staat, gebruik je bij vraag 2 $_POST om de antwoorden op te halen.
// Tevens gebruik je hier de name-attribuut waarde van de Submit-knop van vraag.html, om zo juist te linken.
// Hier is het van belang dat deze uniek is.
if (isset($_POST["vraag1"]))
{
	// Doordat de name-attribuut van de radio-buttons "vraag1_antwoord" heet, kan je de waarde hiervan ophalen met een $_POST.
	// De waarde stop je in een variabele die je later in de bestand weer kan gebruiken.
	$value_question_1 = $_POST["vraag1_antwoord"];
}
?>
<html>
<body style="background-color:yellow">

<p><i>Vraag 2: Hoe oud ben je? </i></p>

<!-- Net als bij vraag1.html link je hier naar de volgende vraag en met de method POST zodat de antwoorden alleen door jou gebruikt kunnen worden in de code. -->
<form action="vraag3.php" method="post">

<input type="radio" name="vraag2_antwoord" value="12" /> 12 <br />
<input type="radio" name="vraag2_antwoord" value="13" /> 13 <br />
<input type="radio" name="vraag2_antwoord" value="14" /> 14 <br />
<input type="radio" name="vraag2_antwoord" value="15" /> 15 <br />
<input type="radio" name="vraag2_antwoord" value="16" /> 16 <br />
<input type="radio" name="vraag2_antwoord" value="17" /> 17 <br />
<input type="radio" name="vraag2_antwoord" value="17" /> 18 <br />
<input type="radio" name="vraag2_antwoord" value="17" /> 19 <br />

<!-- Omdat je het antwoord van de eerste vraag mee wilt nemen, moet je deze iedere keer in een hidden input zetten. Hierdoor staat hij wel in de HTML code 
	maar is deze niet zichtbaar voor de gebruiker.
	Mocht je bij vraag 3 zijn moet je ook het antwoord van vraag 2 als hidden erbij plaatsen. -->
<input type="hidden" name="vraag1_antwoord" value=" <?php echo $value_question_1 ?> " />

<!-- Wat opvalt aan deze Submit-knop is dat de name-attribuut weer uniek is ten opzichte van de vorige -->
<input type="submit" name="vraag2" value="Volgende Vraag" />

</form> 
</body>
</html>

Vraag10 (laatste):

PHP:
<?php
if (isset($_POST["vraag9"]))
{
	$value_question_9 = $_POST["vraag9_antwoord"];
}
?>
<html>
<body style="background-color:yellow">

<p><i>Vraag 10: Wat vind je van de prijzen? </i></p>

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

<input type="radio" name="vraag9_antwoord" value="Goedkoop" /> Goedkoop <br />
<input type="radio" name="vraag9_antwoord" value="Precies goed" /> Precies goed <br />
<input type="radio" name="vraag9_antwoord" value="Te duur" /> Te duur <br />

<input type="hidden" name="vraag1_antwoord" value=" <?php echo $value_question_1 ?> " />
<input type="hidden" name="vraag2_antwoord" value=" <?php echo $value_question_2 ?> " />
<input type="hidden" name="vraag3_antwoord" value=" <?php echo $value_question_3 ?> " />
<input type="hidden" name="vraag4_antwoord" value=" <?php echo $value_question_4 ?> " />
<input type="hidden" name="vraag5_antwoord" value=" <?php echo $value_question_5 ?> " />
<input type="hidden" name="vraag6_antwoord" value=" <?php echo $value_question_6 ?> " />
<input type="hidden" name="vraag7_antwoord" value=" <?php echo $value_question_7 ?> " />
<input type="hidden" name="vraag8_antwoord" value=" <?php echo $value_question_8 ?> " />
<input type="hidden" name="vraag9_antwoord" value=" <?php echo $value_question_9 ?> " />

<input type="submit" name="vraag10" value="Stuur antwoorden" />

</form> 
</body>
</html>
 
Laatst bewerkt:
Hallo Sjaaky55

Een paar vraagjes:
- Waar stopt het script?
- Wat doet hij niet wat hij wel verwacht hoort te doen?

groete vreugde
 
Ik denk dat al weet waarom jou script het niet doet.

Kijk naar vraag tien:
daar staat een een $_POST commando om het antwoord van ALLEEN vraag 9 op te halen.

Nu zijn de volgende vragen aan jou:
- Waarom haal je de antwoorden van vraag 1 tot en met 8 niet op?
- En hoe verwacht jij dat het volgende gaat werken zonder eerst bekend te maken wat de variabelen zijn?
PHP:
<input type="hidden" name="vraag1_antwoord" value=" <?php echo $value_question_1 ?> " />
<input type="hidden" name="vraag2_antwoord" value=" <?php echo $value_question_2 ?> " />
<input type="hidden" name="vraag3_antwoord" value=" <?php echo $value_question_3 ?> " />
<input type="hidden" name="vraag4_antwoord" value=" <?php echo $value_question_4 ?> " />
<input type="hidden" name="vraag5_antwoord" value=" <?php echo $value_question_5 ?> " />
<input type="hidden" name="vraag6_antwoord" value=" <?php echo $value_question_6 ?> " />
<input type="hidden" name="vraag7_antwoord" value=" <?php echo $value_question_7 ?> " />
<input type="hidden" name="vraag8_antwoord" value=" <?php echo $value_question_8 ?> " />
<input type="hidden" name="vraag9_antwoord" value=" <?php echo $value_question_9 ?> " />

bij het openen van iedere PHP-pagina wordt alle eerder opgehaalde data vergeten. Daarom moet je de waardes hiervan meegeven als een hidden input-type, maar dan moet je deze waardes ook iedere keer weer ophalen anders weet de Server niet waar je het over hebt :P

hoop dat dit je helpt

groeten vreugde
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan