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).

<?php
echo '<script language="javascript">';
echo 'function '.$display.'()';
echo '{if (document.forms.formname.'.$antwvar.'.value == '.$answer_var[1].')';
echo '{document.all.'.$showID.'.style.display="block";}';
echo '}';
echo '</script>';
?>

het resultaat ziet er dan zo uit :

<script language="javascript">function display_29(){if (document.forms.Trias.Antw29.value == ja){document.all.show_29.style.display="block";}}</script>

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" .

PS functieaanroep is middels "onchange ..."

Heeft iemand een idee waarom dit niet werkt??
na veel geprust eindelijk een werkende constructie,

zoals gewoonlijk bleek het (uiteindelijk) weer eens een bijster eenvoudige.:S

de code is geworden:

<table>
<tr>
<td class=tekst>Brildragend:</td>
<td class=tekst><input type="radio" id="bril" name="bril" onclick="show_bril(this)" value="ja" <?php if ($antwoorden[bril] == 'ja') echo 'checked'; ?>> ja
<input type="radio" id="bril" name="bril" onclick="show_bril(this)" value="nee" <?php if ($antwoorden[bril] == 'nee') echo 'checked'; ?>> nee </td>
<td colspan="3" class=tekst>&nbsp;</td>
</tr>

<tr id="show_bril">
<td class=tekst>hele zwik met gegevens in een rij, voor het overzicht maar weggelaten</td>
</tr></table>
<script language="javascript">show_bril("nee")</script>


het probleemje zit nu in de laatste regel, bij het laden moet de functie worden aangeroepen met een standaard waarde (standaard rij verbergen).

Echter..welke vorm ik ook kies: 'nee' of "nee" of nee een alert box die de waarde van var1 (zie onderstaand js) blijft undefined geven...

<?php
function show_bril(var1)
{ if(var1.value == 'ja' )
{ document.getElementById("show_bril").style.display = 'block';alert ('ja == ja, waarde = ' + var1.value );} else
{ document.getElementById("show_bril").style.display = 'none';alert ('ja<>nee, waarde = ' + var1.value );}

}
?>

kan iemand aangeven hoe ik de waarde in de variabele krijg van de functie..

<edit>
toch nog gevonden..

als een waarde wordt meegegeven kun je die niet verglijken met 'var1.value == ...' maar maar moet dan worden vergeleken met ' var1 == ...'

functie is nu geworden:
<?php
function show_bril(var1, var2)
{ if(var1.value == 'ja' || var2 == 'ja')
{ document.getElementById("show_bril").style.display = 'block';} else
{ document.getElementById("show_bril").style.display = 'none';}
}
?>

waarbij ik de ene keer voor var1 een onzin waarde meegeef en de andere keer voor var2.

Het lijkt me toch dat dit netter moet kunnen dus als iemand suggesties heeft.

Reageren