[PHP][HTML] Twee form-objecten met dezelfde naam

Pagina: 1
Acties:
  • 115 views sinds 30-01-2008
  • Reageer

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 16-09 12:32
Hiya,

Bij het submitten van een <form> met checkboxen worden alleen de de aangevinkte checkboxen ook variabelen. Voor het verwerken van de data in de aangeroepen PHP-file wil ik echter ook voor de niet aangevinkte checkboxen variabelen hebben, met als waarde gewoon "nee".

Het volgende stukje code schijnt te werken:
code:
1
2
3
4
5
<form name="testform" action="volgende.php" method="post">
<input type="hidden" name="test" value="nee" />
<input type="checkbox" name="test" value="waarde" />
<input type="submit" name="submit" value="Next.." />
</form>

Als checkbox "test" niet aangevinkt is wordt hidden field "test" $test, en als de checkbox wel aangevinkt overschrijft hij $test met zijn eigen waarde. (formulier objecten worden dus bottom-up geparsed?)

Mijn vraag: is dit een goede oplossing? Zijn er andere redenen waarom dit "truucje" eigenlijk beter niet te gebruiken is? Het werkt iig wel Afbeeldingslocatie: http://leeuwarden.nl.scoutlink.net/temp/smilies/1.gif

  • Sabbi
  • Registratie: December 2000
  • Laatst online: 17:35

Sabbi

je denkt aan mij.

als je zomaar een niet gebruikte variable gaat testen in php
is die toch ook FALSE??? ik bedoel, het boeit vrij weinig of je een variabele met false (0) erin doorstuurt of geen variabele doorstuurt en bij een if false krijgt....

wat ik bedoel is waarom zou je dit 'truukje' toepassen? lijkt me zwaar niet boeiend...

  • tomato
  • Registratie: November 1999
  • Niet online
Ik heb dit ook ooit eens nodig gehad. Toen moesten er met JavaScript items uit een selectbox in een andere selectbox gegooid worden. Ik wilde na de submit weten welke items in de tweede selectbox stonden terwijl je van een selectbox alleen de geselecteerde options doorkrijgt :(
Ik heb toen de selectbox multiselect gemaakt en bij een form.on_submit() alle opties in de selectbox laten selecteren zodat ze allemaal doorkwamen.

Alleen nu ik dit zit te typen bedenk ik me dat dit eigenlijk weer net niets met jouw vraag te maken heeft, nevermind |:(
Maar wat je nu hebt is inderdaad niet echt een oplossing voor de schoonheidsprijs. Waarom wil je het? Weet je van tevoren niet welke checkboxen aanwezig zijn?

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 16-09 12:32
Sabbi: Omdat ik daarmee niet weet of die variabele niet bestaat of dat hij gewoon "leeg" is. Bovenstaande "truucje" gooit die checkbox in $HTTP_POST_VARS met waarde "nee". In dit geval "boeit" dat dus wel.

Als je dynamisch een aantal form-componenten genereerd, en je weet in de aangeroepen file niet welke objecten je erin gegooid hebt is het wel nodig om te weten of een variabele gewoon niet een form-component was in de vorige pagina, of dat het een niet aangevinkte checkbox was.

[edit] Tomato: idd, ik weet niet welke checkboxen er zijn van te voren :)

Verwijderd

Op woensdag 31 oktober 2001 14:51 schreef Freak_NL het volgende:
[edit] Tomato: idd, ik weet niet welke checkboxen er zijn van te voren :)
Umm... niet wetend of ik een goed antwoord geef op je vraag zal ik het toch proberen. Ik haal uit een database de form elementen die ingevuld kunnen worden. Dus ook de checkboxes. Aangezien dit altijd een ander aantal is heb ik ze in een array gezet.
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
include ("connect.php");
$i = 0;
$sql = "SELECT * FROM mixes WHERE promo_id = $promo_id"; 
$resultaat = mysql_query($sql); 
while ($record = mysql_fetch_object($resultaat)) 
{ 
$i++; 
echo "<INPUT TYPE='checkbox' NAME='mix[$i]' value='$record->mix'> $record->mix <BR>";
}
?>

Nu krijg ik dus voor elk formulier een ander aantal checkboxes met een andere naam.

Zo geef je aan de form processor wel alle elementen mee omdat ze in die array staan. Naderhand kan je dus kijken welke er wel of niet zijn ingevuld.

Ik hoop dat dit beetje een antwoord was op je vraag. Anders moet je dit bericht maar negeren! Latur!

  • Freak_NL
  • Registratie: Juli 2000
  • Laatst online: 16-09 12:32
dj_delta: bedankt :), maar toch niet helemaal wat ik bedoel. Ik kan wel een array met variabele namen doorgeven aan de volgende pagina, maar ik wil het juist doen met alleen de gesubmitte formcomponenten in $HTTP_POST_VARS.

Verwijderd

ummmm ja... ik ben ook nog maar een maandje of 2 bezig met php dus dat weet ik niet.. wens je veel succes in je zoektoch naar je felbegeerde antwoord op je vraag!
Pagina: 1