PHP 多复选框数组

2022-08-30 10:15:03

我在这里四处寻找了几个例子,但是他们中的很多人要么太先进了,无法掌握PHP,要么他们的例子太具体了。我目前正在为PHP表单的一个非常基本的部分而苦苦挣扎。

我正在尝试创建一个带有几个复选框的表单,每个复选框分配一个不同的值,我希望将这些复选框发送到一个变量(数组?),以便以后可以回显/使用,在我的情况下,我将通过电子邮件发送选中的值。

到目前为止,我已经尝试了一些变体,但是我最接近它的是这个......

<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'];
?>

我会$checkboxvar[]回显到我的电子邮件中。我是不是完全搞错了?我的另一个想法是使用很多if语句。


答案 1
<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']); 
}
?>

您将表单名称作为数组传递,然后可以使用 var 本身访问所有选中的框,然后 var 本身将是一个数组。

要将选中的选项回显到您的电子邮件中,然后您将执行以下操作:

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

请记住,您应该始终根据需要清理您的输入。

为了记录在案,存在这方面的官方文档:http://php.net/manual/en/faq.html.php#faq.html.arrays


答案 2

在输入标记中添加属性的名称[]

 <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>

对于 PHP 代码 :

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

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