checkboxen vraag
Hi,
ik zit met het volgende probleem.
ik heb een while loop met checkboxes.
zoals jullie kunnen zien wordt een checkbox automatisch gechecked als de user voldoet aan die voorwaarden.
Nu is het volgende probleem van toepassing. Als de gebruiker de checkbox die is gecheked uit wil zetten dan gebeurt er dus niks. het lijkt er op dat er geen waarde wordt meegegeven.
ik heb boven aan de code echo var_dump($_POST) gezet maar blijft aangegeven dat de array 0 is.
Ik heb nu dit gedaan.
Volgende output op de checkbox die is gecheked geeft aan
Warning: Invalid argument supplied for foreach()
iemand tips.
Met vriendelijke groet,
Thomas de Vries
ik zit met het volgende probleem.
ik heb een while loop met checkboxes.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$query = $this->db->query('SELECT
user_id,gold_swap_id
FROM
registered
WHERE
user_id = "'.$User_Id.'"
AND
gold_swap_id = "'.$Gold_Swap_Id.'"');
if($query->num_rows > 0)
{
return '<td bgcolor="green" align="center"><input type="checkbox" name="signup[]" value="'.$Gold_Swap_Id.'" checked onchange="this.form.submit()" /></td>';
}
else
{
return '<td bgcolor="red" align="center"><input type="checkbox" name="signup[]" value="'.$Gold_Swap_Id.'" onchange="this.form.submit()" /></td>';
}
user_id,gold_swap_id
FROM
registered
WHERE
user_id = "'.$User_Id.'"
AND
gold_swap_id = "'.$Gold_Swap_Id.'"');
if($query->num_rows > 0)
{
return '<td bgcolor="green" align="center"><input type="checkbox" name="signup[]" value="'.$Gold_Swap_Id.'" checked onchange="this.form.submit()" /></td>';
}
else
{
return '<td bgcolor="red" align="center"><input type="checkbox" name="signup[]" value="'.$Gold_Swap_Id.'" onchange="this.form.submit()" /></td>';
}
zoals jullie kunnen zien wordt een checkbox automatisch gechecked als de user voldoet aan die voorwaarden.
Nu is het volgende probleem van toepassing. Als de gebruiker de checkbox die is gecheked uit wil zetten dan gebeurt er dus niks. het lijkt er op dat er geen waarde wordt meegegeven.
ik heb boven aan de code echo var_dump($_POST) gezet maar blijft aangegeven dat de array 0 is.
Ik heb nu dit gedaan.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
if($_SERVER['REQUEST_METHOD'] == "POST")
{
foreach($_POST['signup'] as $id) {
echo var_dump($id);
}
}
{
foreach($_POST['signup'] as $id) {
echo var_dump($id);
}
}
Volgende output op de checkbox die is gecheked geeft aan
Warning: Invalid argument supplied for foreach()
iemand tips.
Met vriendelijke groet,
Thomas de Vries
Doe eens var_dump($_POST['signup']) voor je foreach?
output is null waneer ik de checkbox die aan staat uit wil zetten.
Die uitstaan en die ik wil aan hebben staan geeft aan array(2) { [0]=> string(1) "1" [1]=> string(1) "2" }
dan is de eerste string die van de checkbox die al aanstaat.
Die uitstaan en die ik wil aan hebben staan geeft aan array(2) { [0]=> string(1) "1" [1]=> string(1) "2" }
dan is de eerste string die van de checkbox die al aanstaat.
Dat klopt precies, want een checkbox die niet checked is wordt niet geset. Je zou eventueel iets als volgt kunnen doen:
De array vullen met id's laat ik over als oefening aan de lezer. Uiteraard zijn er meerdere wegen die naar Rome leiden.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$checkboxes = array('0', '0', '0');
$_POST['signup'] = isset($_POST['signup']) ? $_POST['signup'] : array(); // Liever op een andere manier, maar dit is een voorbeeld
foreach (array_merge($checkboxes, $_POST['signup']) as $idx => $value) {
// hier je code
}
?>
$checkboxes = array('0', '0', '0');
$_POST['signup'] = isset($_POST['signup']) ? $_POST['signup'] : array(); // Liever op een andere manier, maar dit is een voorbeeld
foreach (array_merge($checkboxes, $_POST['signup']) as $idx => $value) {
// hier je code
}
?>
De array vullen met id's laat ik over als oefening aan de lezer. Uiteraard zijn er meerdere wegen die naar Rome leiden.
Gewijzigd op 15/07/2017 11:59:18 door Ben van Velzen
Je kan het zo ingewikkeld maken als je het zelf wild, maar is in de basis heel simpel, een unchecked checkbox leverd geen geen respons op. Heb je wel response, dan heeft de gebruiker het vinkje dus gezet.
Heb je meerdere ckeckbox met dezelfde name, dan kun je de values controleren om te zien welke checkbox wel of niet checked zijn.
Heb je maar 1 checkbox met dezelfde name, dan ist nutteloos om naar de value te kijken
Heb je meerdere ckeckbox met dezelfde name, dan kun je de values controleren om te zien welke checkbox wel of niet checked zijn.
Heb je maar 1 checkbox met dezelfde name, dan ist nutteloos om naar de value te kijken
Bedankt all.
Dus het komt er dus op neer dat als een user een check plaats dat de user diezelfde check dus niet uit kan zetten omdat er dus geen waarde mee gegeven wordt?
Dan dien ik het dus op een andere manier te maken.
Heb hier even gouw een voorbeeld van hoe ik het nu heb,

Zoals jullie kunnen zien zijn er een aantal checks waar de gebruiker belang bij heeft. Maar ik wou het dus zo maken dat als een gebruiker zoiets heeft van nee toch niet ik die het vinkje uit. dat die ook alleen van die id de check uit zet.
Ik zal toch eens kijken of ik er wat anders van kan maken dan.
Dus het komt er dus op neer dat als een user een check plaats dat de user diezelfde check dus niet uit kan zetten omdat er dus geen waarde mee gegeven wordt?
Dan dien ik het dus op een andere manier te maken.
Heb hier even gouw een voorbeeld van hoe ik het nu heb,

Zoals jullie kunnen zien zijn er een aantal checks waar de gebruiker belang bij heeft. Maar ik wou het dus zo maken dat als een gebruiker zoiets heeft van nee toch niet ik die het vinkje uit. dat die ook alleen van die id de check uit zet.
Ik zal toch eens kijken of ik er wat anders van kan maken dan.
Is het aantal checkboxen altijd gelijk?
In bovenstaand plaatje dus 7.
In bovenstaand plaatje dus 7.
Nee dit kan veranderen waneer een admin meer toe gaat voegen en verwijderen.
Het is vast niet de beste manier maar ik kan even niks anders bedenken.
Maak een teller die tijdens de echo van de checkboxen meeloopt zodat je het aantal checkboxen weet.
De meelopende teller zet je in <input type="checkbox" name="signup[HIER]" .....
Maak een extra input hidden met dat getal er in.
Na het posten doe je
Maak een teller die tijdens de echo van de checkboxen meeloopt zodat je het aantal checkboxen weet.
De meelopende teller zet je in <input type="checkbox" name="signup[HIER]" .....
Maak een extra input hidden met dat getal er in.
Na het posten doe je
Code (php)
Gewijzigd op 16/07/2017 12:28:20 door - SanThe -




