将动态字段输入mysql数据库失败

时间:2017-07-17 07:24:52

标签: 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";  
 }  
 ?> 

1 个答案:

答案 0 :(得分:0)

我发现了一个需要更新的问题

$.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请求