Hallo,

Ik heb het volgende probleem met een checkbox gebruik in forms:
1) vanaf een invoerpagina worden gegevens verzameld die de gebruiker moet invoeren. Een van die gegevens kan met een checkbox aangevinkt worden
2) De gegevens worden middels een submit naar dezelfde pagina gestuurd, alwaar ze worden verwerkt.
3) als de gebruiker echter niet het vinkje aanzet, zal de variabele (die in de checkbox is gedefinieerd) NIET meegezonden worden. De applicatie denkt dan dat de gebruiker niets heeft ingevoerd en zal weer bij stap 1 beginnen.

Hoe is dit op te lossen?
Groet,

Wilfred van Dijk
komen de gegevens in de database?
als de gebruiker de checkbox niet aangevinkt heeft zet je false in de db.
als de gebruiker wel de checkbox aanvinkt zet je true in de db.

wat zou die checkbox moeten doen?
Als je checkbox op de eerste pagina de naam "mycheck" heeft, kun je op de tweede pagina met

if (isset ($_POST['mycheck']))

controleren of hij aangevinkt was.
Bij iedere aanroep van dit invoerscherm wordt gekeken welke variabelen benodigd zijn. Deze worden in een tabel gezet met als inhoud NULL. De programma genereerd vervolgens voor alle variabelen die als inhoud NULL hebben (= geen invoer van gebruiker) een invoer (bv als checkbox, combobox, input etc). Geen vinkje aanzetten bij een checkbox is kennelijk hetzelfde als geen invoer, dus wordt de waarde niet op "unselected" gezet.
Kan dit alleen met javascript afgevangen worden?
probleem is dat ik vooraf niet weet hoeveel variabelen er gevraagd gaan worden (de applicatie is een soort kennissysteem die ahv stuurgegevens om nieuwe invoer kan vragen). Voorbeeld: als de persoon ingeeft dat hij vrouw is, zal het systeem vragen of ze zwanger is.
Een workaround heb ik al door alle checkboxes te vervangen door ja/nee comboboxen, maar volgens mij moet dit oplosbaar zijn.
Wilfred van Dijk schreef op 24.02.2006 13:42
Bij iedere aanroep van dit invoerscherm wordt gekeken welke variabelen benodigd zijn. Deze worden in een tabel gezet met als inhoud NULL. De programma genereerd vervolgens voor alle variabelen die als inhoud NULL hebben (= geen invoer van gebruiker) een invoer (bv als checkbox, combobox, input etc). Geen vinkje aanzetten bij een checkbox is kennelijk hetzelfde als geen invoer, dus wordt de waarde niet op "unselected" gezet.
Kan dit alleen met javascript afgevangen worden?

Je bedoeld dat hij wél bestaat maar leeg is?

dan kan je toch zo doen:

<?php
if(empty($_POST['naam'])){
?>

Reageren