Meer dan 1 waarde mee sturen met een checkbox

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny kempen

Danny kempen

06/01/2014 19:43:50
Quote Anchor link
Hoi,

Ik heb nu bijvoorbeeld de volgende code

<input type='checkbox' name='waarden[]' value='3'>

Nu wil ik meer dan 1 waarde mee geven met 1 checkbox dus bijvoorbeeld dit:

<input type='checkbox' name='waarden[]' value='gegeven1=3&gegeven2=6&gegeven3=5'>

Kan iemand mij uitleggen hoe dit werkt?

Alvast bedankt
 
PHP hulp

PHP hulp

26/04/2024 07:31:03
 
- Ariën  -
Beheerder

- Ariën -

06/01/2014 19:47:48
Quote Anchor link
Ka je mij vertellen wat je wilt bereiken? Heb je niks aan een multiple selectbox?
 
Danny kempen

Danny kempen

06/01/2014 19:56:39
Quote Anchor link
- Aar - op 06/01/2014 19:47:48:
Ka je mij vertellen wat je wilt bereiken? Heb je niks aan een multiple selectbox?


Ik heb een form waar ik rechten op selecteer. Dit ziet er als volgt uit:

categorie Rechten
Categorie 1 checkbox
categorie 2 checkbox
enz
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/01/2014 20:18:43
Quote Anchor link
Code (html)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<input type="checkbox" name="cat1[]" value="1">Lezen
<input type="checkbox" name="cat1[]" value="2">Schrijven
<input type="checkbox" name="cat2[]" value="1">Lezen
<input type="checkbox" name="cat2[]" value="2">Schrijven
 
Danny kempen

Danny kempen

06/01/2014 20:24:53
Quote Anchor link
Ger van Steenderen op 06/01/2014 20:18:43:
Code (html)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<input type="checkbox" name="cat1[]" value="1">Lezen
<input type="checkbox" name="cat1[]" value="2">Schrijven
<input type="checkbox" name="cat2[]" value="1">Lezen
<input type="checkbox" name="cat2[]" value="2">Schrijven



Op deze manier krijg ik vier checkboxen te zien op mijn form. Het is de bedoeling dat ik 1 checkbox krijg met hieraan meerdere waarden.
Gewijzigd op 06/01/2014 20:25:19 door Danny kempen
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/01/2014 20:46:08
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type="checkbox" name="waarde[]" value="lezen:true">Lezen
<input type="checkbox" name="waarde[]" value="lezen:true|schrijven:true">Schrijven

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.
 
Danny kempen

Danny kempen

06/01/2014 21:36:53
Quote Anchor link
Ger van Steenderen op 06/01/2014 20:46:08:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<input type="checkbox" name="waarde[]" value="lezen:true">Lezen
<input type="checkbox" name="waarde[]" value="lezen:true|schrijven:true">Schrijven

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?


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    foreach ($_POST['rechten'] as $waarde)
    {
        echo $waarde['account'];
    }
}
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/01/2014 21:51:23
Quote Anchor link
Geef eens wat uitleg van wat je wilt bereiken.

In ieder geval is het zo dat als jij name="rechten" doet $_POST['rechten'] geen array is (dus kan je geen foreach doen).
 
Danny kempen

Danny kempen

06/01/2014 21:56:21
Quote Anchor link
Ger van Steenderen op 06/01/2014 21:51:23:
Geef eens wat uitleg van wat je wilt bereiken.

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)

<input type=checkbox name=naam value=test1=waarde1;test2=waarde2;>

uitkomst zou dan zoiets zijn als: naam[test1]; of naam[test2];

Ik weet niet of het nu iets duidelijker is:S
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

06/01/2014 22:15:45
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
//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
?>

De vraag is of het niet wat makkelijker kan
 
Kris Peeters

Kris Peeters

07/01/2014 13:52:14
Quote Anchor link
Ik vind het een vreemd verzoek.

stuur gewoon een soort van id mee. De server houdt bij welke id bij welke gegevens horen.

Waarom zou je de checkbox wel kunnen genereren; maar niet weten welke checkbox welke gegevens bevat?

Op basis waarvan genereer je die checkboxes?

----
Nu ja; dat laatste van Ger is de beste manier om meerdere gegevens te coderen tot 1 string.
Gewijzigd op 07/01/2014 13:54:37 door Kris Peeters
 



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.