【问题标题】:PHP - How to only post checked checkboxes in a loop?PHP - 如何只在循环中发布选中的复选框?
【发布时间】:2019-08-13 21:34:36
【问题描述】:

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

【问题讨论】:

  • 你能出示你的代码吗
  • 你真的尝试过什么吗? HTML 复选框已经默认只发布选中的复选框。
  • 是的,我已经尝试过了。但是因为它是一个while循环,所以输入的名称总是相同的。所以我试图把值放在一个数组上,然后它发送所有的类。 (我无法在移动 atm 上分享我的代码)
  • @michaldb 对于名称,在名称末尾添加[]。这将允许它提交作为数组检查的所有值。例如,如果字段名称为current_name,则将其更改为current_name[]

标签: php post mysqli checkbox while-loop


【解决方案1】:

最好的方法可能是更改您的 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"
)

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

【讨论】:

    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多