web-dev-qa-db-fra.com

PHP Tableau à cases à cocher multiples

J'ai cherché quelques exemples ici, mais beaucoup d'entre eux sont soit trop avancés pour que je puisse saisir PHP, soit leurs exemples sont trop spécifiques à leurs propres projets. Je suis actuellement aux prises avec une partie très élémentaire d'un formulaire PHP.

J'essaie de créer un formulaire avec quelques cases à cocher, chacune étant affectée d'une valeur différente. Je souhaite que celles-ci soient envoyées à une variable (tableau?) Que je pourrai utiliser ultérieurement. Dans mon cas, j'enverrai les valeurs cochées un courriel.

Jusqu'ici, j'ai essayé quelques variations, mais le plus proche auquel je suis arrivé est celui-ci ...

<form method='post' id='userform' action='thisform.php'>
<tr>
    <td>Trouble Type</td>
    <td>
    <input type='checkbox' name='checkboxvar' value='Option One'>1<br>
    <input type='checkbox' name='checkboxvar' value='Option Two'>2<br>
    <input type='checkbox' name='checkboxvar' value='Option Three'>3
    </td>
</tr>
</table>
<input type='submit' class='buttons'>
</form>

<?php
$checkboxvar[] = $_REQUEST['checkboxvar'];
?>

Où je ferais écho à $ checkboxvar [] dans mon courrier électronique ... Est-ce que je vais à ce sujet complètement faux? L’autre idée que j’avais était d’utiliser beaucoup de déclarations if.

38
Darek Gajda
<form method='post' id='userform' action='thisform.php'> <tr>
    <td>Trouble Type</td>
    <td>
    <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Three'>3
    </td> </tr> </table> <input type='submit' class='buttons'> </form>

<?php 
if (isset($_POST['checkboxvar'])) 
{
    print_r($_POST['checkboxvar']); 
}
?>

Vous transmettez le nom du formulaire sous forme de tableau et vous pouvez ensuite accéder à toutes les cases cochées à l'aide de la variable var elle-même, qui serait alors un tableau.

Pour reprendre les options cochées dans votre courrier électronique, procédez comme suit:

echo implode(',', $_POST['checkboxvar']); // change the comma to whatever separator you want

S'il vous plaît gardez à l'esprit que vous devriez toujours désinfecter votre contribution au besoin.

Pour mémoire, des documents officiels existent: http://php.net/manual/fr/faq.html.php#faq.html.arrays

65
cryptic ツ

ajoutez [] dans le nom des attributs dans la balise input

 <form action="" name="frm" method="post">
<input type="checkbox" name="hobby[]" value="coding">  coding &nbsp
<input type="checkbox" name="hobby[]" value="database">  database &nbsp
<input type="checkbox" name="hobby[]" value="software engineer">  soft Engineering <br>
<input type="submit" name="submit" value="submit"> 
</form>

pour PHP Code: 

<?php
 if(isset($_POST['submit']){
   $hobby = $_POST['hobby'];

   foreach ($hobby as $hobys=>$value) {
             echo "Hobby : ".$value."<br />";
        }
}
?>
20
Rawnay

Vous devez utiliser la notation entre crochets pour que les valeurs soient envoyées sous forme de tableau:

<form method='post' id='userform' action='thisform.php'>
<tr>
    <td>Trouble Type</td>
    <td>
    <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Three'>3
    </td>
</tr>
</table>
<input type='submit' class='buttons'>
</form>

Veuillez noter cependant que seules les valeurs des cases à cocher cochées seront envoyées.

4
Martin Bean

Essayez ceci, par pour Loop

<form method="post">
<?php
for ($i=1; $i <5 ; $i++) 
{ 
    echo'<input type="checkbox" value="'.$i.'" name="checkbox[]"/>';
} 
?>
<input type="submit" name="submit" class="form-control" value="Submit">  
</form>

<?php 
if(isset($_POST['submit']))
{
    $check=implode(", ", $_POST['checkbox']);
    print_r($check);
}     
?>
2
Chaitanya Bhojne
if (isset($_POST['submit'])) {

for($i = 0; $i<= 3; $i++){

    if(isset($_POST['books'][$i]))

        $book .= ' '.$_POST['books'][$i];
}
0
Siddharth Shukla