[code lang-html]
<input type="checkbox" name="waarde[]" value="lezen:true">Lezen
<input type="checkbox" name="waarde[]" value="lezen:true|schrijven:true">Schrijven
[/code]
Als je in html een checkbox input een naam geeft met blokhaken, dan wordt dit als een array meegeven aan de post, met daarin elementen met de waardes van de checkboxen die zijn aangevinkt.
Dat is toch veel makkelijker werken als in php gaan lopen klooien met explodes etc.
[code lang-html]
<input type="checkbox" name="waarde[]" value="lezen:true">Lezen
<input type="checkbox" name="waarde[]" value="lezen:true|schrijven:true">Schrijven
[/code]
Als je in html een checkbox input een naam geeft met blokhaken, dan wordt dit als een array meegeven aan de post, met daarin elementen met de waardes van de checkboxen die zijn aangevinkt.
Dat is toch veel makkelijker werken als in php gaan lopen klooien met explodes etc.
Ik heb nu de volgende checkbox gemaakt:
<input type='checkbox' name='rechten' value='account=1|hoofdmenuBeheer=1'>
Opvangen doe ik zo maar geeft geen resultaat. Wat doe ik precies fout?
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST['rechten'] as $waarde)
{
echo $waarde['account'];
}
}
In ieder geval is het zo dat als jij name="rechten" doet $_POST['rechten'] geen array is (dus kan je geen foreach doen).
Ik denk idd dat ik niet helemaal duidelijk ben. Wanneer ik een checkbox geselecteerd heb moet ik hiervan de volgende gegevens kunnen ontvangen(Voorbeeld)
Dat was al wel duidelijk, maar dan weet ik nog steeds niet wat het uiteindelijke doel is.
Het is niet zo moeilijk om meerdere waardes aan een input toe te kennen:
//html
<input type="checkbox" name="rechten" value='{"waarde1": "1", "waarde2": "3"}'>
<?php
// je kan dit dan in php uitlezen met:
$values = json_decode($_POST['rechten'], true) // laatste parameter false of weggelaten geeft een object terug
?>