Php mysql dynamici c значение поля формы в столбце базы данных - PullRequest
0 голосов
/ 21 марта 2020

У меня есть форма со stati c полями с одним динамическим c полем.

HTML

<form method="POST" action="" name="add_name" id="add_name">
 <div class="form-group row">//static fields
 <div class="col-sm-4">
 <input type="text" class="form-control" id="asid" name="asid" placeholder="Enter Asset ID" required>
 </div>
 <div class="col-sm-4">
 <input type="text" class="form-control" id="cost" name="cost" placeholder="Enter Cost">
 </div>
 </div>
 <div class="form-group row">//dynamic field
 <div class="col-sm-4">
 <div id="dynamic_field">
 <input type="text" class="form-control" name="customname[]" id="input-22" placeholder="Enter Field Name">
</div>
</div>
 <div class="col-sm-4">
 <button type="button" name="add" id="add" class="btn btn-success">Add More</button>
 </div>
 </div>
 <button type="submit" name="submit" class="btn btn-primary px-5"><i class="icon-lock"></i> Submit</button>
</form>

Как вы можете видеть, customname [] field is dynamici c и будет увеличиваться нажатием кнопки «Добавить».

Мой JS

<script>  
 $(document).ready(function(){  
      var i=1;  
      $('#add').click(function(){  
           i++;  
           $('#dynamic_field').append('<div id="row'+i+'"><br><input type="text" name="customname[]" placeholder="Enter field name" class="form-control" /><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></div>');  
      });  
      $(document).on('click', '.btn_remove', function(){  
           var button_id = $(this).attr("id");   
           $('#row'+button_id+'').remove();  
      });  
      $('#submit').click(function(){            
           $.ajax({  
                url:"asset-add.php",  
                method:"POST",  
                data:$('#add_name').serialize(),  
                success:function(data)  
                {  
                     alert(data);  
                     $('#add_name')[0].reset();  
                }  
           });  
      });  
 });  
 </script>

Js работает нормально, без проблем.

Проблема с PHP

    if(isset($_POST['submit']))
      {
        $asid=$_POST['asid'];
        $cost=$_POST['cost'];
    $customname = $_POST["customname"]; 
    if(!empty($_POST["customname"]))  {
    foreach ($_POST["customname"] as $key => $value)  {
    $query=mysqli_query($con, "insert into asset (asid, cost, customname) value ('$asid', '$cost', '".value."' )");
    }
    }

}

PHP тоже хорошо. Я могу вставить в БД тоже.

В моей базе данных есть 4 столбца: ID (основной + автоинкремент), asid, стоимость, customname. Когда я заполняю форму и отправляю, значения asid и cost отправляются успешно, но для «customname» вставляется только текст «value», а не введенное мной значение.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...