Checkboxen in een array

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Harry

Harry

08/03/2006 14:05:00
Quote Anchor link
Naar aanleiding van een script hier:

In een lijst maak ik achter een vraag een rij checkboxen onder elkaar met antwoorden. Hier kunnen meerdere worden aangevinkt.

$AntwoordenAantal = count($Antwoorden);
for($i = 0; $i < $AntwoordenAantal; $i++)
{
echo ("<tr><td></td><td><input type='checkbox' name='Waarde[$id][$i]'"); if($Waarde[$id][$i]) { echo(" checked"); } echo("> ".$Antwoorden[$i]."</td></tr>");
}

Dit gaat goed, wanneer het formulier na een controle terugkomt zijn de aangevinkte antwoorden weer netjes aangevinkt.

Maar... wanneer ik de antwoorden in een string wil opslaan worden alle antwoorden in de string gezet en dat is natuurlijk nou net niet de bedoeling. Alleen de aangevinkte moeten herkent en verwerkt worden.

for($i = 0; $i < $AntwoordenAantal; $i++)
{
if(!$strdata)
{
$strdata = isset($Waarde[$id][$i]) ? "$Antwoorden[$i]" : "";
}
else
{
$strdata .= isset($Waarde[$id][$i]) ? "|$Antwoorden[$i]" : "";
}
}

Wat ik niet begrijp of over het hoofd zie is dat bij het formulier de waardes wel onthouden/terugkomen maar bij de verwerking wordt alles meegenomen.

---

Hier ben ik bijna bij een oplossing:
Op een andere manier wordt de verwerking wel goed gedaan maar worden alle checkboxen steeds aangevinkt i.p.v. de zelf aangevinkte.

echo ("<tr><td></td><td><input type='checkbox' name='".$id."box".$i."'"); if($id."box".$i) { echo(" checked"); } echo("> ".$Antwoorden[$i]."</td></tr>");

Er is dus iets mis met de if() formulering, maar wat?

Wie weet raad?
Harry
Gewijzigd op 08/03/2006 14:06:00 door Harry
 
Er zijn nog geen reacties op dit bericht.



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.