php - 向 mysql 数据库输入动态字段失败

标签 php jquery mysql ajax

向 mysql 数据库输入动态字段失败,但我不明白为什么。 html 和 php 文件均已给出,请帮助我纠正代码并提供有关如何执行此操作的想法。

<html>  
      <head>  
           <title>Dynamically Add or Remove input fields in PHP with JQuery</title>  
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
           <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
           <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
      </head>  
      <body>  
           <div class="container">  
                <br />  
                <br />  
                <h2 align="center">Purchase Entry</h2>  
                <div class="form-group">  
                     <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="Invoice No." class="form-control name_list" /></td> 
                                         <td><input type="text" name="name[0]" placeholder="Description" class="form-control name_list" /></td>  
                                         <td><input type="text" name="name[1]" placeholder="Unit" class="form-control name_list" /></td> 
                                         <td><input type="text" name="name[2]" placeholder="Quantity" class="form-control name_list" /></td> 
                                         <td><input type="text" name="name[3]" placeholder="Amount" 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="Add and Save" />  
                          </div>  
                     </form>  
                </div>  
           </div>  
      </body>    </html>   <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="Invoice No." class="form-control name_list" /></td><td><input type="text" name="name[0]" placeholder="Description" class="form-control name_list" /></td><td><input type="text" name="name[1]" placeholder="Unit" class="form-control name_list" /></td></td><td><input type="text" name="name[2]" placeholder="Quantity" class="form-control name_list" /></td><td><input type="text" name="name[3]" placeholder="Amount" 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:"purchasesave.php",  
                method:"POST",  
                data:$('#add_name').serialize(),  
                success:function(data)  
                {  
                     alert(data);  
                     $('#add_name')[0].reset();  
                }  
           });  
      });    });    </script>

php 文件是这样的,但我想将每个字段添加到 mysql

<?php
include "includes/header.php";
include "includes/mydb.php";
include "includes/veriuser.php";

$conn = new mysqli($servername,$username,$password,$database)
?>
<?php   
 $number = count($_POST["purchase"]);  
 if($number > 0)  
 {  
      for($i=0; $i<$number; $i++)  
      {  
           if(trim($_POST["purchase"][$i] != ''))  
           {  
                $sql = "INSERT INTO tbl_name(purchase) VALUES('".mysqli_real_escape_string($conn, $_POST["name"][$i])."')";  
                mysqli_query($conn, $sql);  
           }  
      }  
      echo "Data Inserted";  
 }  
 else  
 {  
      echo "Please Enter Name";  
 }  
 ?> 

最佳答案

我发现一个问题需要更新

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

这是常见格式,您使用 $number = count($_POST["purchase"]); 因此您需要在 ajax 请求中发送此变量。现在检查您的 ajax 请求

关于php - 向 mysql 数据库输入动态字段失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45138240/

相关文章:

javascript - 引导设置错误 : Uncaught ReferenceError: jQuery is not defined & Uncaught Error: Bootstrap's JavaScript requires jQuery

php - 如何使用 Codeigniter 编辑 MySQL 表行?

MySQL 错误 2006 (HY000)

javascript - 剑道可排序问题

javascript - 将日期格式更改为 dd/MM/yyyy

mysql - 如何获取数据库中具有选定前缀的所有表的列表?

php - 将用户从一个链接引导至不同 URL 的好方法是什么?

php - json请求在本地主机上工作但不在服务器上

php - 从 2 个不同的表中获取值时感到困惑

php - Composer 安装 Magento 2 作为开发依赖