php - 如何将每个选中的复选框添加到 MySQL 中的单行

标签 php mysql arrays

我有几个包含名称的复选框(ids 作为数据库的引用) - 请参阅下面的代码。如何选择所有选中的值并将它们添加到数据库(通过 MySQL)每个选中的每一行?

<input type="checkbox" value="1" name="names[]">John
<input type="checkbox" value="2" name="names[]">Peter
<input type="checkbox" value="3" name="names[]">Mike
<input type="checkbox" value="4" name="names[]">Kattie
<input type="submit" value="Send" name="send">

单击“发送”并检查所需名称后,数据库中的结果应如下所示(我选择了约翰和迈克):

ID

1

3

(仅限选定的)

我怎样才能做到这一点?

最佳答案

您需要包装您的 input位于 <form>元素并为该表单提供 post 的方法:

<form method="post"> 
    <input type="checkbox" value="1" name="names[]" />John
    <input type="checkbox" value="2" name="names[]" />Peter
    <input type="checkbox" value="3" name="names[]" />Mike
    <input type="checkbox" value="4" name="names[]" />Kattie
    <input type="submit" value="Send" name="send" />
</form>

这将允许您将表单输入中提交的数据发布到 PHP。

注意:如果您的 HTML 位于不同的文件中(即与表单不在同一文件中),您可以添加 action属性到您的表单(例如: action="fileWithPHP.php" )

现在您可以使用 $_POST['names'] 访问 PHP 中所有选中的复选框。这将允许您获取检查值的数组。然后您可以使用foreach循环遍历数组中的每个值:

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

  foreach($names as $name) {
    echo "Add " . $name . " to db here<br />"; // add $name to db
  }
}
?>

关于php - 如何将每个选中的复选框添加到 MySQL 中的单行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54387580/

相关文章:

mysql - 在 MySQL 监视器中阅读 MySQL 手册?

c - 数组间接问题

php - 提交后从文本区域检索文本

MySQL 仅当子表中的记录与另一个子表中的记录匹配时才从父表中选择行

php - 如何根据计数或出现次数对同一 mysql 列中的值进行排序

javascript - 循环 JSON 对象并删除特定的子对象

arrays - Swift 3 - 无法使用数组发出 Alamofire 请求

php - Symfony 将参数传递给验证器约束

php - MySQL获取单个表中的多行

php - CakePHP 保存 HABTM 数据