2009-10-04 5 views

Répondre

0

form.php:

<form action="checkbox-form.php" method="post"> 
    <label for="formWheelchair">Do you need wheelchair access?</label> 
    <input type="checkbox" name="formWheelchair" value="Yes" id="formWheelchair" /> 
<input type="submit" name="formSubmit" value="Submit" /> 
</form> 

case-form.php:

if(isset($_POST['formWheelchair']) && 
$_POST['formWheelchair'] == 'Yes') 
{ 
    $wheelchair = true; 
} 
else 
{ 
    $wheelchair = false; 
} 
    var_dump($wheelchair); 

// Version abrégée:

$wheelchair = isset($_POST['formWheelchair'])?true:false; 

Droit de: http://www.html-form-guide.com/php-form/php-form-checkbox.html

Note: À un poi plus tard Vous pouvez utiliser des sessions pour stocker les données pour la validation côté serveur si l'utilisateur n'a pas saisi tous les champs.

+1

-1 trop de code. isset() suffit, une case à cocher ne va pas dans le tableau $ _POST si elle n'est pas sélectionnée. $ fauteuil roulant = faux; if (isset ($ _ POST ['formWheelchair'])) {$ fauteuil roulant = true; } – markus

+1

encore une chose: la dénomination des variables. 'formWheelchair' ne dit pas assez. 'wheelchairNeeded' serait un meilleur nom. – markus

+1

C'est une excuse idiote de downvote, mais peu importe. Personnellement, je préfère des réponses longues et approfondies que les doublures. –

-1

En HTML:

<input type="checkbox" name="terms"> 

Dans le script PHP que le formulaire de messages:

if ($_POST['terms'] == 'on') { 

    echo 'User accepted terms'; 

} 
+1

Votre code lancera une erreur 'termes' d'index indéfini. Comme lorsque le formulaire est posté, php ne reçoit pas de case à cocher qui n'a pas été cochée. le vrai code sera if (isset ($ _ POST ['terms'])) {///} - Krishna Kant Sharma Il ya 0 secondes –

+1

Il va lancer un avis, pas une erreur. –

+0

Strictement parlant, cela fonctionnerait si l'on attribuait à l'élément de case à cocher un attribut de valeur "on", en ce sens que la case en cours de vérification entraînerait le passage de la condition. Cependant, vous avez raison de dire que cela enverrait également un avis, ce qui n'est pas la façon la plus gracieuse de s'en occuper. Dans de nombreux cas, la valeur est sans importance, et vous devez simplement vérifier la présence. La valeur devient cependant significative lorsque vous configurez plusieurs options avec le même nom, où vous obtenez un tableau d'options sélectionnées, ou pour tester des boutons radio, où vous devez déterminer quelle option a été sélectionnée. – Rob

1

Si la forme est une méthode formulaire POST. Ensuite, sur la page d'action, vous devriez avoir accès à la variable $ _POST.

Découvrez les résultats de ceci sur votre page d'action.

echo "<pre>"; 
print_r($_POST); 
echo "</pre>"; 

La variable $ _POST sera un tableau. Vous pouvez accéder à la valeur du tableau comme ceci.

if($_POST["key"] == "value") 

Lorsque la clé est le nom dans la sortie ci-dessus.

3

En supposant que vous avez une forme qui ressemble à ceci:

<form method="post" action="some_handler.php"> 
    <label for="option1">Option 1</label> 
     <input id="option1" type="checkbox" name="option1" /> 
    <label for="option2">Option 2</label> 
     <input id="option2" type="checkbox" name="option2" /> 
    <!-- submit, etc --> 
</form> 

Vous pouvez vérifier la présence des valeurs de case à cocher (par nom) dans $_POST, à savoir

<?php 
$optionOne = isset($_POST['option1']); 
$optionTwo = isset($_POST['option2']); 

Si les cases ne sont pas vérifiés, $_POST ne contiendra pas de valeurs pour eux.

+0

+1 pour les raisons données dans d'autres commentaires :-) – NickFitz

2

Il est tout à fait suffisant pour vérifier:

$userAgrees = false; 

if (isset($_POST['myCheckbox'])) 
{ 
    $userAgrees = true; 
} 
+0

+1 pour comprendre que l'état on/off des cases à cocher sur le client se reflète dans leur présence/non sur le serveur :-) – NickFitz

Questions connexes