[php] form-question icm redirect & hidden-field waarden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 09:19

Dentist

Next patient please...

Topicstarter
Ik heb een formulier dat vragen en antwoordmogelijkheden voorschoteld. Nu wil ik, afhankelijk van het antwoord dat gegeven wordt, naar een andere vraag doorverwijzen. Scores worden netjes bij elkaar opgeteld en als de vervolgvraag bij een antwoord 0 is, dan gaat ie naar de conclusie.

Dus:

vraag 1, antwoord a -> vraag 2
vraag 1, antwoord b -> vraag 6
vraag 6, antwoord x -> conclusie

Nu heb ik daarvoor in principe de php-code geschreven, maar ik zit even hoe ik dit in mijn form kwijt moet. Op dit moment heb ik het volgende

PHP:
1
2
<input type="radio" name="antwoordscore" value="'.$score.'">'.$antwoord.'
<input type="hidden" name="volgendeVraag" value="'.$volgendeVraag.'">


Dit werkt als $volgendeVraag voor alle radio-opties gelijk is, maar werkt niet meer als ik verschillende waarden aan $volgendeVraag ga toekennen.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<td class="answers" align="left">
    <input type="radio" name="antwoordscore" value="5">0 - 20
    <input type="hidden" name="volgendeVraag" value="0">
</td></tr>
<tr valign="middle">
<td class="answers" align="left">
        <input type="radio" name="antwoordscore" value="10">21 - 40
        <input type="hidden" name="volgendeVraag" value="0">
 </td></tr>
<tr valign="middle">
<td class="answers" align="left">
    <input type="radio" name="antwoordscore" value="15">41 +
    <input type="hidden" name="volgendeVraag" value="33">
</td>


De waarden die bij volgendeVraag worden gezet zijn de juisten, allen gaat hij in dit geval altijd naar vraag 33, terwijl ik wil dat ie bij de 1e 2 opties naar de conclusies gaat. Ik heb het idee dat ik even iets heel sufs over het hoofd zie, maar staat al te lang naar het scherm om het te zien.

Iemand suggesties? thx!

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 02:21

Janoz

Moderator Devschuur®

!litemod

Sowieso gaat bovenstaande niet werken. De hidden velden zijn op geen enkele manier gekoppeld aan de radiobuttons immers. Waarom wil je de volgende vraag perse met het formulier meesturen? In principe kun je toch keurig serverside bepalen naar welke vraag gesprongen moet worden? Als je bij het genereren zou kunnen weten welke volgende vraag bij een antwoord hoort, kun je dat ook wel tijdens het verwerken achterhalen.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Je hebt 3 velden met de naam 'volgendeVraag', die overschrijven elkaar en volgendeVraag heeft dus altijd waarde 33.

Daarnaast is je werkwijze niet echt handig natuurlijk. Bepaal of serverside naar welke vraag je toe gaat springen. De waarden van inputvelden zijn ook eenvoudig van buiten aan te passen door de gebruiker, en je wilt ook niet dat ze zelf kunnen bepalen naar welke vraag ze gaan ;)

Acties:
  • 0 Henk 'm!

  • Dentist
  • Registratie: December 2000
  • Laatst online: 09:19

Dentist

Next patient please...

Topicstarter
Bosmonster schreef op vrijdag 27 januari 2006 @ 17:14:
Je hebt 3 velden met de naam 'volgendeVraag', die overschrijven elkaar en volgendeVraag heeft dus altijd waarde 33.

Daarnaast is je werkwijze niet echt handig natuurlijk. Bepaal of serverside naar welke vraag je toe gaat springen. De waarden van inputvelden zijn ook eenvoudig van buiten aan te passen door de gebruiker, en je wilt ook niet dat ze zelf kunnen bepalen naar welke vraag ze gaan ;)
Inderdaad zeg.. Even pauze en 2 koppen koffie gehad en het werd pijnlijk duidelijk welke fout ik had gemaakt.. thx. Functie geschreven die de score en de volgende vraag genereert op basis van het antwoord werkt een stuk beter :)

Dat de waarden van de inputvelden eenvoudig zijn aan te passen maakt me niet zoveel uit, want het gaat om een applicatie die alleen intern gebruikt wordt.