Devo generare n checkbox, assegnando ad ognuna un id successivo, in modo da inviarle ad una pagina come array di booleani.
Come posso fare?
Devo generare n checkbox, assegnando ad ognuna un id successivo, in modo da inviarle ad una pagina come array di booleani.
Come posso fare?
Prova:
Codice PHP:
<input type="checkbox" name="check[]" value="0">
<input type="checkbox" name="check[]" value="1">
<input type="checkbox" name="check[]" value="1">
// se il method è post
foreach ($_POST['check'] as $key => $value)
{
echo "Hai selezionato la checkbox: $key con valore: $value
";
}
Ho usato:
<input type='checkbox' name='check[]' checked='checked' value='1'/>
<input type='checkbox' name='check[]' value='0'/>
Ma come faccio nella pagina a cui manda il submit a stampare tutti i valori di tutte le checkBox?
up
Riprendendo il codice di lolindirfaelivr se vuoi stampare solo i valori delle checkBox scrivi
poi se devi scrivere l'esito di questi checkBox in un'altra pagina, non devi usare $_POST, ma $_GET.Codice PHP:
foreach ($_POST['check'] as $key => $value)
{
echo $value."
";
}
Con quel codice mi stampa "on" per ogni checkbox tickata ma non stampa niente per quelle non tickate...
Se scrivi così
Recuperi lo stato dei checkbox, ovvero true o false, selezionato o no.Codice PHP:
foreach ($_POST['check'] as $key => $value)
{
if($value=='on') { echo "true
"; } else { echo "false
"; }
}
La struttura per recuperare lo stato del checkbox, c'è: sta a te, adesso, a gestire l'output...
Poi, dove hai i vari checkbox, che valori associ ad ogni controllo? Ovvero dai un value al controllo?
Se scrivi, esempio, un checkbox per recuperare la materia
e selezioni il primo controllo, recupererai 'matematica'.Codice PHP:
<input type="checkbox" name="check[]" value="matematica">
<input type="checkbox" name="check[]" value="fisica">
<input type="checkbox" name="check[]" value="italiano">
Per poterti aiutare (lo so che forse è lungo da scrivere) ma puoi fare un esempio più chiaro di quello che vorresti realizzare, scrivendo proprio quello che ti aspetti di avere?
"Non soffocare la tua ispirazione e la tua immaginazione,
non diventare lo schiavo del tuo modello"
Vincent van Gogh
Ho capito come funzionano le checkbox ma ripeto che il mio problema è che vede solo le checkbox tickate...
Ho 20 checkbox di cui 10 tickate, con l'ultimo codice che mi hai postato stampa 10 volte true e basta.
allora, ti posto il codice che ho usato per fare le prove. funziona e ti scrive dei true o dei false a seconda se i controlli sono selezionati o no.
Nell'esempio c'è un campo nascosto che serve per sapere quanti controlli ci sono; nell'esempio vale 3, nel tuo caso vale 20.Codice PHP:
<?php
if(isset($_POST[btn]))
{
$myCheck = $_POST['check'];
$numCheck = $_POST['num_check'];
for($i=1;$i<=$numCheck;$i++)
{
if($myCheck[$i]!='') echo "true"; else echo "false";
}
}
?>
<form method='post'>
<input type="checkbox" name="check[1]" value="1">
<input type="checkbox" name="check[2]" value="2">
<input type="checkbox" name="check[3]" value="3">
<input type='hidden' name='num_check' value='3'>
<input type='submit' value='vai' name='btn'>
</form>
Fammi sapere se così va bene.
"Non soffocare la tua ispirazione e la tua immaginazione,
non diventare lo schiavo del tuo modello"
Vincent van Gogh
Codice PHP:
<form id="formPermissions" action="changePermissions.php" method="post">
<table>
<tr><td></td><td>utenti</td><td>utenti_tabelle</td><td>tabella_prova_1</td><td>tabella_prova_2</td></tr><tr><td>prova</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]' checked='checked'/></td><td><input type='checkbox' name='check[]' checked='checked'/></td></tr><tr><td>prova_amilcare</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]' checked='checked'/></td></tr><tr><td>prova_zucchero</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td></tr><tr><td>prova_fabio</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td></tr><tr><td>prova_za</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]' checked='checked'/></td></tr><tr><td>prova_ze</td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]'/></td><td><input type='checkbox' name='check[]' checked='checked'/></td><td><input type='checkbox' name='check[]'/></td></tr></table>
<div><input type="submit" value="Salva"/></div>
</form>
Output:Codice PHP:
<?php
$checklist=$_POST['check'];
for ($i=0;$i<24;$i++) {
if($checklist[$i]=='on') { echo "true
"; } else { echo "false
"; }
}
?>
true
true
true
true
true
true
true
true
true
true
true
true
true
Notice: Undefined offset: 13
Notice: Undefined offset: 14
Notice: Undefined offset: 15
...
...
...
Notice: Undefined offset: 23