login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Opslaan van een enquete

Offline cowb - 06/04/2006 14:35
Avatar van cowbLid Hoi iedereen,

Ik ben bezig aan het eindwerk van men broer, dat is een enquete die bestaat uit 25 vragen (meeste zijn meerkeuze en bijna alles gebeurt via checkbuttons en radiobuttons). Maar ik zit met het probleem... deze enquete is in stappen verdeeld en ik moet dus zorgen dat al die gegevens mooi in de database raken en dat er achteraf mooie grafieken worden gemaakt met al die gegevens... Maar ik zit met het probeem... hoe doe ik dat best, ik heb al verschillende ideen gehad zoals...

Ik maak voor elke stap een tabel... en sla na iedere stap alles op (maar... hoe weet ik dan nog welk record bij wie hoort?)
Of ik maak na elke stap variabelen aan ( $vraag1 = $_post['antwoord1']; ) maar ik ben hier niet zeker van dat ik deze 7 stappen lang kan houden in men variable ?

Kan iemand me soms wat tips geven?
Al vast bedankt 

24 antwoorden

Gesponsorde links
Offline Simon - 06/04/2006 14:41
Avatar van Simon PHP expert je kan mss met sessies??

$_SESSION['vraag1'] = $_POST['antwoordopvraag1'];

Offline cowb - 06/04/2006 14:45
Avatar van cowb Lid Ja dat zou nog kunnen... dan moet ik zeker minsten 25 sessies aanmaken. Kan dit geen problemen geven?
Offline marten - 06/04/2006 14:46
Avatar van marten Beheerder sessies kan je in een loop zetten ;)
en 25 sessies geven geen problemen
Offline Simon - 06/04/2006 14:47
Avatar van Simon PHP expert om het gemmakkelijk te maken kun je groepjes sessions gebruiken, omzeker niet te verwarren:
  1. <?php
  2. $_SESSION['vraag1'] = $_POST['antwoordopvraag1'];
  3. $_SESSION['vraag2'] = $_POST['antwoordopvraag2'];
  4. //enzovoort
  5. //wordt dan
  6. $_SESSION['enquete']['vraag1'] = $_POST['antwoordopvraag1'];
  7. $_SESSION['enquete']['vraag2'] = $_POST['antwoordopvraag2'];
  8. //mss iets duidelijker als je veel sessies hebt
  9. ?>
Offline cowb - 06/04/2006 15:23
Avatar van cowb Lid dan kan ik dit vb doen...

  1. <?
  2. $_SESSION['stap1']['vraag1'] = $_post['antwoordvraag1'];
  3. $_SESSION['stap1']['vraag2'] = $_post['antwoordvraag2'];
  4.  
  5. //en voor stap 2
  6. $_SESSION['stap2']['vraag1'] = $_post['antwoordvraag1'];
  7. $_SESSION['stap2']['vraag2'] = $_post['antwoordvraag2'];
  8. ?>
Offline marten - 06/04/2006 15:24
Avatar van marten Beheerder jep dat kan dan ja 
Offline cowb - 06/04/2006 17:15
Avatar van cowb Lid Ik heb nog een vraagje...

Ik heb in men formulier een lijstje en van bv. 6 onderwerpen... en daarin moet iemand er max 3 aanduiden... Maar hoe controleer ik op het moemten dat die persoon aanvinkt of hij er al 3 geeft gehad of niet...
Offline timo - 06/04/2006 17:30
Avatar van timo PHP ver gevorderde denk dat je het het best kan doen mss wel met AJAX, onClick op een van die dingen naar een php pagina, die ++ een waarde, is die op 3, word het gedeselect en word er een alert gegeven..
Offline Rens - 06/04/2006 17:38
Avatar van Rens Gouden medaille

Crew algemeen
Waarom altijd dat AJAX? 
Je kunt het toch net zo handig gewoon checken met javascript, zonder dat er PHP aan te pas komt? 
Offline cowb - 06/04/2006 17:44
Avatar van cowb Lid jah maar hoe 
Offline Rens - 06/04/2006 17:46
Avatar van Rens Gouden medaille

Crew algemeen
Ik ga het dus niet voorknauwen, lees wat tutorials door.
http://www.site...amp;id=306
Die is er heel handig bij, heb hem even snel bekeken, en wat jij nodig hebt, staat er in.
Offline cowb - 06/04/2006 17:51
Avatar van cowb Lid tja wat je geeft is niet echt wat ik zoek... wil wil het controleren vanaf die persoon 1 aanvinkt 
Offline Rens - 06/04/2006 17:53
Avatar van Rens Gouden medaille

Crew algemeen
Je kunt toch telkens als er een checkbox aangevinkt word, checken hoeveel er aangevinkt zijn?
Of ben ik nou achterlijk aan het worden? 
Offline cowb - 07/04/2006 15:50
Avatar van cowb Lid Hoe simpel het ook mag zijn... mij lukt het niet :S
Offline Thomas - 07/04/2006 16:24
Avatar van Thomas Moderator Sla de checkboxen op in array-vorm:

  1. <input type="checkbox" name="optie[0]" value="antwoord_id" /><br />
  2. <input type="checkbox" name="optie[1]" value="antwoord_id" /><br />
  3. <input type="checkbox" name="optie[2]" value="antwoord_id" /><br />
  4. <input type="checkbox" name="optie[3]" value="antwoord_id" /><br />


Per vraag weet je hoeveel antwoorden er zijn, dus je kunt hier met een for-lus doorheen (in JavaScript):

  1. var aantal = 4; // het aantal checkboxen
  2. var teller = 0; // aantal gecheckte elementen
  3.  
  4. for(var i=0; i < aantal; i++)
  5. {
  6. var elt = "optie["+i+"]"; // de elementnaam
  7. if(document.forms['je_formulier_naam'].elements[elt].checked)
  8. {
  9. // checkbox geselecteerd
  10. teller++;
  11. }
  12. }
  13. window.alert("Er zijn "+teller+" elementen gechecked.");
Offline cowb - 07/04/2006 17:20
Avatar van cowb Lid Hmm dit ding doet het niet bij mij :S
Offline Simon - 07/04/2006 17:59
Avatar van Simon PHP expert bij mij ook niet, en heb al geprobeerd te wijzigen, niks helpt 
Offline Thomas - 07/04/2006 23:47
Avatar van Thomas Moderator Hm, moeten jullie je toch wat beter scholen in JavaScript - dit werkt prima:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>html template</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <script language="JavaScript" type="text/javascript">
  8. <!--
  9. function check()
  10. {
  11. var aantal = 4; // het aantal checkboxen
  12. var teller = 0; // aantal gecheckte elementen
  13.  
  14. for(var i=0; i < aantal; i++)
  15. {
  16. var elt = "optie["+i+"]"; // de elementnaam
  17. if(document.forms['form_naam'].elements[elt].checked)
  18. {
  19. // checkbox geselecteerd
  20. teller++;
  21. }
  22. }
  23. window.alert("Er zijn "+teller+" elementen gechecked.");
  24. }
  25. //-->
  26. </script>
  27. </head>
  28.  
  29. <body>
  30. <form name="form_naam" action="whatever.htm" method="post">
  31. <input type="checkbox" name="optie[0]" value="antwoord_id" /><br />
  32. <input type="checkbox" name="optie[1]" value="antwoord_id" /><br />
  33. <input type="checkbox" name="optie[2]" value="antwoord_id" /><br />
  34. <input type="checkbox" name="optie[3]" value="antwoord_id" /><br />
  35. <button type="button" onclick="check()">check</button>
  36. </form>
  37. </body>
  38. </html>
Offline cowb - 08/04/2006 13:50
Avatar van cowb Lid Tja, maar dit is niet wat ik zocht :S ... Ik heb zelf al hopen pogingen gedaan, maar lukt me niet (ben noob in javascript) Ik wil gewoon...
Als iemand 1 aanklikt dat hij gaat controlen hoeveel er aangevikt zijn... en als er meer dan bv 3 zijn kunnen er geen meer aangevinkt worden (met een alert ofzo...)
Offline Thomas - 08/04/2006 14:05
Avatar van Thomas Moderator Dan moet je met een onclick event controleren hoeveel er aangeklikt zijn/worden .

  1. <input type="checkbox" name="optie[X]" onclick="this.checked = minder_dan(3)" />


minder_dan(3) retourneert een boolean die aangeeft of er minder dan 3 checkboxen aangevinkt zijn, en die bepaalt of checkbox (met index X) gechecked wordt.
Offline cowb - 08/04/2006 14:14 (laatste wijziging 08/04/2006 15:35)
Avatar van cowb Lid Unk?? En nu even nederlands...
Ik heb zelf ook nog wat zitte prutsen, werkt wel niet maar mss zit ik in de buurt 

[EDIT] Er mag ook geen knop aan te pas komen... het is dus de bedoeling als je 1 aanvinkt dat hij al direct gaat controleren 


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>html template</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <script language="JavaScript" type="text/javascript">
  8. <!--
  9. function check(veld, form, aantal, maxi)
  10. {
  11. var teller = 0; // aantal gecheckte elementen
  12.  
  13. for(var i=0; i < aantal; i++)
  14. {
  15. var elt = ""+veld+"["+i+"]"; // de elementnaam
  16. if(document.forms[form].elements[elt].checked)
  17. {
  18. // checkbox geselecteerd
  19. teller++;
  20. }
  21. }
  22. if(teller > maxi)
  23. {
  24. //hier de laatst gecheckte checkbox laten unchecken... maar hoe?
  25. window.alert("Je mag maar "+maxi+" dingen aanduiden.");
  26. }
  27. }
  28. //-->
  29. </script>
  30. </head>
  31.  
  32. <body>
  33. <form name="form_naam" action="" method="post">
  34. <input type="checkbox" name="optie[0]" value="antwoord_id" /><br />
  35. <input type="checkbox" name="optie[1]" value="antwoord_id" /><br />
  36. <input type="checkbox" name="optie[2]" value="antwoord_id" /><br />
  37. <input type="checkbox" name="optie[3]" value="antwoord_id" /><br />
  38. <button type="button" onclick="check("optie", "form_naam", 4, 3)">check</button>
  39. </form>
  40. </body>
  41. </html>
Offline Thomas - 08/04/2006 18:10
Avatar van Thomas Moderator
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <html>
  4. <head>
  5. <title>html template</title>
  6. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  7. <script language="JavaScript" type="text/javascript">
  8. <!--
  9. function check_radio(button, veld, form, aantal, max)
  10. {
  11. var teller = 0; // aantal gecheckte elementen
  12.  
  13. for(var i=0; i < aantal; i++)
  14. {
  15. var elt = ""+veld+"["+i+"]"; // de elementnaam
  16. if(document.forms[form].elements[elt].checked)
  17. {
  18. // checkbox geselecteerd
  19. teller++;
  20. }
  21. }
  22.  
  23. if(teller > max)
  24. {
  25. button.checked = false;
  26. window.alert("Je mag maximaal "+max+" checkboxen aanvinken.");
  27. }
  28. }
  29. //-->
  30. </script>
  31. </head>
  32.  
  33. <body>
  34. <form name="form_naam" action="" method="post">
  35. <input type="checkbox" name="optie[0]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  36. <input type="checkbox" name="optie[1]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  37. <input type="checkbox" name="optie[2]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  38. <input type="checkbox" name="optie[3]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  39. <input type="checkbox" name="optie[4]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  40. <input type="checkbox" name="optie[5]" value="whatever" onclick="check_radio(this, 'optie', 'form_naam', 6, 3)" /><br />
  41. </form>
  42. </body>
  43. </html>
Offline cowb - 09/04/2006 13:46 (laatste wijziging 10/04/2006 16:19)
Avatar van cowb Lid Ok thx fangorn... Nu heb ik wel iets eigennaardigs voor...

Mij value's zijn altijd leeg als ik het formuleer submit 
Offline Simon - 10/04/2006 16:49 (laatste wijziging 10/04/2006 16:49)
Avatar van Simon PHP expert zet es heel je code op http://www.pastebin.be
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.265s