Ниже приведен код динамической формы, который может вставлять данные, добавляя несколько входных данных от пользователя в строку, но я хочу, чтобы они были в столбце. Как мне это сделать?

Я скачал следующий код из интернета. Этот код добавит дополнительные входные данные от пользователя, но создаст новую строку в базе данных. Я хочу, чтобы это было вставлено в разные столбцы строки. Как мне это сделать?

Я создал поля для вставки в столбец.

<form name = "add_name" id = "add_name">
<div class = "table-responsive">
<table class = "table table-bordered" id = "dynamic_field">
<tr>
<td><input type = "text" name = "name[]" placeholder = "Enter your Name" 
class = "form-control name_list" /></td>                               
<td><button type = "button" name = "add" id = "add" class = "btn btn-success">Add 
More</button> 
</td></tr>
</table>
<input type = "button" name = "submit" id = "submit" class = "btn btn-info" 
value = "Submit" />
</form>

<script>
$(document).ready(function(){
var i=1;
$('#add').click(function(){
    i++;
    $('#dynamic_field').append('<tr id = "row'+i+'"><td><input type = "text" name = "name[]" placeholder = "Enter your Name" class = "form-control name_list" /></td><td><button type = "button" name = "remove" id = "'+i+'" class = "btn btn-danger btn_remove">X</button></td></tr>');
});

$(document).on('click', '.btn_remove', function(){
    var button_id = $(this).attr("id"); 
    $('#row'+button_id+'').remove();
});

$('#submit').click(function(){      
    $.ajax({
        url:"name.php",
        method:"POST",
        data:$('#add_name').serialize(),
        success:function(data)
        {
            alert(data);
            $('#add_name')[0].reset();
        }
    });
});

});
</script>

А это имя.php

<?php
$connect = mysqli_connect("localhost", "root", "", "testing");
$number = count($_POST["name"]);
if ($number > 1)
{
for($i=0; $i<$number; $i++)
{
    if (trim($_POST["name"][$i] != ''))
    {
        $sql = "INSERT INTO tbl_name(namec) VALUES('".mysqli_real_escape_string($connect, $_POST["name"][$i])."')";
        mysqli_query($connect, $sql);
    }
}
echo "Data Inserted";
}
else
{
echo "Please Enter Name";
}
?>

в вашем запросе на вставку вы упомянули один столбец и для этого вы дали одно значение. Если вам нужно вставить в несколько столбцов, вам нужно добавить запрос на вставку.

anuj arora 27.05.2019 09:18

Не могли бы вы показать мне, как? Я пробовал $sql= "INSERT INTO tbl_name(namea, nameb,namec,named) VALUES('".mysqli_real_escape_string($connect, $_POST["name"][$i])."')"; mysqli_query($connect, $sql);

CAU Webmaster Imphal 27.05.2019 09:20

Я хотел бы предложить вам, что ваш подход неверен, так как пользователь может ввести «n» имен, но ваши столбцы будут ограничены некоторыми числами. Скажите, пожалуйста, сколько имен может ввести пользователь?

anuj arora 27.05.2019 09:23

Я уже знаю, что. Эта ситуация отличается @Praveen Pasishetti

CAU Webmaster Imphal 27.05.2019 09:24

4 мне хватает. Я вас понимаю, но давайте отклоним лишнюю вставку @anuj

CAU Webmaster Imphal 27.05.2019 09:25

for($i=0; $i<$number; $i++) эта строка позволяет вводить данные в несколько строк, а не в несколько столбцов, так что, если вы попробуете просто $_POST["name"][0],$_POST ["имя"][1],$_POST["имя"][2],$_POST‌​["имя"][3] для 4 значений?

AgentP 27.05.2019 09:40
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
41
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Согласно вашим комментариям, я предполагаю, что будет максимум 4 имени. Вы можете выполнить работу, как показано ниже: -

<?php
 $connect = mysqli_connect("localhost", "root", "", "testing");
 $number = count($_POST["name"]);
 $db_col_names = array('namea','nameb','namec','named');
 $names = array();

 if ($number > 1)
 {
      for($i=0; $i<$number; $i++)
      {
           if (trim($_POST["name"][$i]) != '')
           {
                $names[] = mysqli_real_escape_string($connect, $_POST["name"][$i]); //get all the values from from in an array
           }
      }
      $names = implode("','", $names); //make all the values as string to pass in insert query
      $db_col_names = array_slice($db_col_names, 0, $number); //slice the DB columns to the names length entered
      $db_col_names = implode("`,`", $db_col_names ); //make all the values as string to pass in insert query

      $sql = "INSERT INTO tbl_name(`".$db_col_names."`) VALUES('".$names."')";
      mysqli_query($connect, $sql);

      echo "Data Inserted";
 }
 else
 {
      echo "Please Enter Name";
 }
?>

Надеюсь, это сделает работу, которая вам нужна. Если нужны какие-либо дополнительные модификации или какие-либо проблемы, дайте мне знать в комментариях.

Другие вопросы по теме