Come faccio a verificare in PHP se un checkbox
è selezionato o no?Come posso vedere quale casella di controllo è selezionata?
risposta
Se la casella di controllo è selezionata, verrà passato il valore della casella di controllo. Altrimenti, il campo non viene passato nel post HTTP.
if (isset($_POST['mycheckbox'])) {
echo "checked!";
}
Funziona se è stata selezionata una 'casella di controllo ', quindi deselezionata e quindi il modulo è stato inviato? –
Sì, il browser invia solo lo stato in cui era la casella di controllo, quando l'utente ha fatto clic sul pulsante di invio, quante volte la casella di controllo è stata selezionata o deselezionata non ha importanza. –
Grazie. 'ASP.NET MVC' lo gestisce in modo diverso, quindi penso che sarebbe simile in' PHP', ma sembra che non lo sia. :) –
Prova questo
<form action="form.php" method="post">
Do you like stackoverflow?
<input type="checkbox" name="like" value="Yes" />
<input type="submit" name="formSubmit" value="Submit" />
</form>
<?php
if(isset($_POST['like'])
{
echo "You like Stackoverflow.";
}
else
{
echo "You don't like Stackoverflow.";
}
?>
O questo
<?php
if(isset($_POST['like']) &&
$_POST['like'] == 'Yes')
{
echo "You like Stackoverflow.";
}
else
{
echo "You don't like Stackoverflow.";
}
?>
è possibile verificare che la casella di controllo del tempo sia isset()
o empty()
(il suo controllo esplicito isset) per è selezionata o meno
per esempio
<input type='checkbox' name='Mary' value='2' id='checkbox' />
qui è possibile controllare da
if (isset($_POST['Mary'])) {
echo "checked!";
}
o
if (!empty($_POST['Mary'])) {
echo "checked!";
}
quanto sopra verificherà una sola se si vuole fare per molti di quanto si può fare una matrice invece la scrittura separata per tutti casella di controllo prova come
<input type="checkbox" name="formDoor[]" value="A" />Acorn Building<br />
<input type="checkbox" name="formDoor[]" value="B" />Brown Hall<br />
<input type="checkbox" name="formDoor[]" value="C" />Carnegie Complex<br />
php
$aDoor = $_POST['formDoor'];
if(empty($aDoor))
{
echo("You didn't select any buildings.");
}
else
{
$N = count($aDoor);
echo("You selected $N door(s): ");
for($i=0; $i < $N; $i++)
{
echo htmlspecialchars($aDoor[$i]). " ";
}
}
Come renderlo solo in grado di selezionare una casella di controllo da più checkbox e inserirla nel database? 'inserisci in table_name (choice) VALUES ('$ aDoor')' –
@AlKush usa invece la radio box;) –
Grazie. E sì, ho deciso di utilizzare i pulsanti di opzione. Ma come renderlo necessario. Per esempio. Ho tre pulsanti radio che non sono stati controllati. Ma voglio ricordare all'utente che devono sceglierne uno. –
Se non si sa quale caselle di controllo la vostra pagina ha (es: se si sta creando dinamicamente) si può semplicemente mettere un campo nascosto con lo stesso nome e il valore 0 proprio sopra la casella di controllo.
<input type="hidden" name="foo" value="0" />
<input type="checkbox" name="foo" value="1">
In questo modo otterrete 1 o 0 in base al fatto che la casella di controllo sia selezionata o meno.
amo mani corte così:
$isChecked = isset($_POST['myCheckbox']) ? "yes" : "no";
[http://www.html-form-guide.com/php-form/php-form-checkbox.html](http://www. html-form-guide.com/php-form/php-form-checkbox.html) Questo copre caselle di controllo e gruppi di caselle di controllo. – McAden