In een dynamische vragenlijst moet de waarde van een "radio" vraag worden vergeleken met een referentie die vanuit de database is opgehaald (als aan de voorwaarde is voldaan moet een bepaals de regel worden worden weergegeven '....display="block" '. Omdat deze functie niet voor alle vragen geldt (dynamisch) wordt middels een if in PHP bepaald of de functie gebouwd moet worden. Het Javascript ziet er als volgt uit (momenteel).
als ik de " echo '{if (do......" eruit sloop laat ie wel de regel zien indien in het antwoord (radio) wijzig, de antwoord mogelijkheden zijn in dit geval "ja" & " nee" .
de bedoeling is dat een of meerdere volgende vragen worden weergegeven als de voorwaarde (in de if waar is).
het javascript moet de waarde van vraag (in dit geval 29) vergelijken met een referentie waarde (in dit geval "ja") en indien waar word(t)(en) de volgende vra(a)g(en) (met id "show_29") weergegeven.
Het lijkt erop dat de vergelijking niet goed werkt maar het uiteraard geen idee waarom (anders had ik het hiet niet gepost ;))
Moet het ook dynamisch zijn? Dus stel, de bezoeker klikt 'ja' aan als radio, moeten de volgende vragen dan verschijnen? En als hij 'nee' klikt, moeten ze dan niet verschijnen?
Klopt inderdaad, in de else (die er nu nog niet is) komt te staan:
document.all.show_29.style.display="none";
waardoor de vragen met ID Show_29 weer worden verborgen (als het antwoord dus nee is).
Voor de beeld vorming:
stel je voor dat vraag 29 is:
"ben je een beetje thuis in PHP"
Vraag 30 is dan afhankelijk van het antwoord op 29 en bv:
" Motiveer je antwoord."
Als vraag 31 vervolgens een heel andere vraag is die geen "afhankelijke" vragen heeft dan wordt de hele constuctie (dus funcite en aanverwante zaken) niet opgebouwd.
Ik zal een voorbeeld je voor je maken. Voorwaarde is dan wel dat je nog even online blijft, want anders ben ik voor jan met de korte achternaam bezig. Okee?
<script language="javascript">';
echo 'function '.$display.'()';
echo '{if (document.forms.formname.'.$antwvar.'.value == '.$answer_var[1].')'; // oude IE manier, werkt nog wel, maar ik geef geen garantie voor toekomst
echo '{document.all.'.$showID.'.style.display="block";}'; // document.all wordt lang niet overal ondersteund. Daarbij heb je middenin je stukje een string.
echo '}';
echo '</script>'