【问题标题】:How to insert multiple rows to mysql using php form when checkbox is ticked in the row如何在行中勾选复选框时使用php表单将多行插入mysql
【发布时间】:2019-04-18 14:45:56
【问题描述】:

我有一个 PHP 表单,我将在其中发送到 MYSQL DB 字段:ID、NAME、CITY 我有另一种形式,我正在编辑整个列表。 id 喜欢做的是在勾选复选框时为每一行填充相同的 NAME(从列表中选择)。

Form.php

<form method="post" action="submit.php" >
<select name="name" id="name"><option type="text" name="name" value="<?php echo $name ?>"><?php echo $name ?></option></select>
<select name="city" id="city"><option type="text" name="city" value="<?php echo $city ?>"><?php echo $city ?></option></select>
<input type="checkbox" name="check[<?php echo $id ?>]" value="<?php echo $id ?>">
<button type="submit" name="update">Update</button>
</form>

提交.php

if (isset($_POST['update'])) {
    foreach($_POST['check'] as $key=>$value){
    $id = $_POST['id'];
        $name = $_POST['id'][$key];
    $city = $_POST['city'];
        mysqli_query($db, "UPDATE table SET name='$name', city='$city' WHERE id=$id");
}

将复选框勾选到我希望具有相同定义的名称的行并提交它会很糟糕。

【问题讨论】:

  • checkbox 将作为数组发布。
  • 默认情况下,复选框存储为数组格式...它将以数组格式发布...使用 name="check_box" 而不是 name="check[ ]"
  • 也没有帮助

标签: php html mysql checkbox


【解决方案1】:

我已经创建了一个例子,希望对你有帮助。选项标签中不能有id值,你只能有值。

    <form method="post" action="submit.php">
        <select name="name" id="name">
          <option value="1">Option 1</option>
        </select>
        <select name="city" id="city">
          <option value="Athens">Athens</option>
        </select>
        <input type="checkbox" name="check_box" />
        <button type="submit" name="update">Update</button>
    </form>    

<?php
    if (isset($_POST['update'])) {

        $check_box_checked = isset($_POST['check_box']);

        if($check_box_checked){
            echo "Checked";
        }else{
            echo "Un Checked";
        }

        $id = $_POST['city'];
        echo $id;

        $name = $_POST['name'];
        echo $name;

        //mysqli_query($db, "UPDATE table SET name='$name', city='$city' WHERE id=$id");
    }
    ?>

【讨论】:

  • 不幸的是,这个答案不起作用。我想勾选特定行的复选框,我想从列表中更改相同的名称。当我点击更新时,只有那些行将获得与勾选复选框相同的选择名称。检查我的截图。
  • @Lucas 你不能有 option 类型文本和名称的标签,你只能在每个选项中有值。另外,如果你想在每个复选框中有多个值,你必须连接id | city | name 然后拆分。
猜你喜欢
  • 2013-09-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
相关资源
最近更新 更多