Как вставить несколько строк в mysql с помощью php-формы, когда флажок установлен в строке

#php #html #mysql #checkbox

#php #HTML #mysql #флажок

Вопрос:

У меня есть форма PHP, в которой я отправляю поля базы данных MYSQL: ID, ИМЯ, ГОРОД. У меня есть другая форма, в которой я редактирую весь список. Что я хотел бы сделать, это заполнить одно и то же ИМЯ (выбирая из списка) в каждую строку, когда флажок установлен.

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>
 

submit.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");
}
 

Было бы неплохо установить флажок в тех строках, где я хочу иметь то же определенное ИМЯ, и отправить его.

введите описание изображения здесь

Комментарии:

1. checkbox будет отправлено в виде массива.

2. по умолчанию хранилище флажков находится в формате массива … оно будет размещаться в формате массива… Используйте name=»check_box» вместо name=»проверить [<?php echo $id ?>]»

3. также не помогло

Ответ №1:

Я создал пример, надеюсь, он вам поможет.У вас не может быть значения id в теге option, у вас может быть только значение.

     <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");
    }
    ?>
 

Комментарии:

1. к сожалению, этот ответ не работает. Я хочу установить флажок для определенных строк, на которые я хотел бы изменить то же ИМЯ из списка. Когда я нажимаю обновить, только те строки получат то же выбранное имя, где был установлен флажок. Проверьте мой скриншот.

2. @Lucas у вас не может быть option тега с типом text и name, у вас может быть только значение в каждой опции. Кроме того, если вы хотите иметь несколько значений в каждом флажке, вам нужно id | city | name объединить, а затем разделить его.