PHP-如何仅在循环中发布已选中的复选框?

时间:2019-03-22 20:32:52

标签: php post mysqli checkbox while-loop

我正在进行一个项目,该项目使学生注册特定的课程(“法语”,“数学”等)。学生ID已被选择。真正的一会儿循环,我显示我的类从我的数据库,每个类前面的复选框。我只想以将其发送到php文件的形式发布te选中的复选框,该文件将学生及其选择的班级放入数据库中。但是由于while循环的困难,我似乎无法解决如何仅发布已选中的复选框。我希望有一个人可以帮助我。已经谢谢了!

2 个答案:

答案 0 :(得分:0)

最好的方法可能是更改HTML以将类作为数组而不是单个表单元素发布。

<checkbox name="classes[]" value="CLASS_ID_1">
<checkbox name="classes[]" value="CLASS_ID_2">
<checkbox name="classes[]" value="CLASS_ID_3">
<checkbox name="classes[]" value="CLASS_ID_4">

然后,这方面的PHP方面非常简单。仅选中的复选框值将显示在处理页面上。

因此,假设有人检查CLASS_ID_1CLASS_ID_3CLASS_ID_4

print_r($_POST['classes']);

上面的代码应该返回;

array (
    "CLASS_ID_1",
    "CLASS_ID_3",
    "CLASS_ID_4"
)

因此,从本质上讲,它是一组检查值。这意味着您不需要类名或任何其他信息或循环来处理数据。

答案 1 :(得分:-1)

如果可能存在从0到n个主题,则只需小心地为复选框分配一个name属性(因为php将会接收发布的数据),这使您轻松遍历数据。 例如,您有一个表subject(id int,name varchar(255)),然后将每个记录的名称或id用作表单中每个复选框的name属性。 然后在接收已发布数据的php文件或函数上,首先从主题表中检索数据,然后使用foreach循环遍历该数据,在$ _POST数组中搜索特定值 例如。

"require": {
    "mailgun/mailgun-php": ">0",
    "php-http/curl-client": ">0",
    "guzzlehttp/psr7": ">0"
}