无法在数据库中插入多个记录

时间:2020-10-07 17:45:37

标签: javascript php html mysql

我有一个带有订单号,订单日期,信纸类型,信纸数量字段的表格(例如发票),这里信纸类型和信纸数量不止一个。我试图将数据插入表中,但是插入按钮不起作用。提交按钮没有反应,没有向表中插入任何值。我的代码太长了,请耐心等待

<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(strlen($_SESSION['alogin'])==0)
    {   
header('location:index.php');
}
else{
if(isset($_POST['submit']))
    for($count = 0; $count < count($_POST["item_name"]); $count++)
{   
$txntype='received';
$orderno=$_POST['orderno'];
$orderdate=$_POST['orderdate'];   
$stationerytype=$_POST['item_unit']; 
$stationeryqtyrecd=$_POST['item_quantity']; 

$sql="INSERT INTO tblstationerystock(txntype,orderno,orderdate,stationerytype,stationeryqtyrecd) VALUES(:txntype,:orderno,:orderdate,:stationerytype,:stationeryqtyrecd)";
$query = $dbh->prepare($sql);
$query->bindParam(':txntype',$txntype,PDO::PARAM_STR);
$query->bindParam(':orderno',$orderno,PDO::PARAM_STR);
$query->bindParam(':orderdate',$orderdate,PDO::PARAM_STR);
$query->bindParam(':stationerytype',$stationerytype[$count],PDO::PARAM_STR);
$query->bindParam(':stationeryqtyrecd',$stationeryqtyrecd[$count],PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Stationery Stock added Successfully";
header('location:dashboard.php');
}
else 
{
$error="Something went wrong. Please try again";
}

}
}
?>
<!DOCTYPE html>
<html>
    <head>
        
                
    </head>
    <body>
    
        <br />
        <div class="container" style="border: 2px solid #B22222;border-radius: 10px;margin-top: 25px;margin-bottom: 15px;>
            <div class="row">
                <div class="col-md-4">
                </div>
                <div class="col-sm-12">
                    <h4 align="center"><b><u>Add Stationery Stock<b></u></h4>
                    <br />
                    <form method="post" id="insert_form">
                    <div class="col-sm-6">
                    <input type="text" name="orderno." class="form-control" placeholder="Order NO "/>
                    </div>
                    <div class="col-sm-6">
                    <input type="date" name="orderdate" class="form-control" placeholder="Date" />
                    </div>
                    &nbsp;
                    <div>&nbsp;</div>
                    <div>&nbsp;</div>
                    <h4 align="center"><b><u>Stationery Details<b></u></h4>
                    <div>&nbsp;</div>
                    
                        <div class="table-repsonsive">
                            <span id="error"></span>
                            <table class="table table-bordered" id="item_table">
                                <tr>
                                    <th style="width:10%">Sl.No.</th>
                                    <th style="width:50%">Select Unit</th>
                                    <th>Enter Quantity</th>
                                    <th><button type="button" name="add" class="btn btn-success btn-sm add"><span class="glyphicon glyphicon-plus"></span></button></th>
                                </tr>
                            </table>
                            <div align="center">
                                <button type="submit" name="submit" class="btn btn-info"style="margin-bottom:20px" >ADD</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
        
    </body>
</html>

JavaScript代码

const renum = () => {
  let cnt = 0;
  $(".item_name").each(function() {
    this.value = ++cnt;
  })
};

$(function() {

  $("#item_table").on('click', '.add', function() {
    var html = '';
    html += '<tr>';
    html += '<td><input type="text" name="item_name[]"  class="form-control item_name"  readonly></td>';
    html += '<td><select name="item_unit[]" class="form-control item_unit" id="datalist"><option value="">Select Stationery Type</option><option value="A4 Green Ream">A4 Green Ream</option></select></td>';
    html += '<td><input type="text" name="item_quantity[]" class="form-control number_only item_quantity" /></td>';
    html += '<td><button type="button" name="remove" class="btn btn-danger btn-sm remove"><span class="glyphicon glyphicon-minus"></span></button></td></tr>';
    $('#item_table').append(html);
    renum()
  });

  $(document).on('click', '.remove', function() {
    $(this).closest('tr').remove();
    renum()
  });

  $('#insert_form').on('submit', function(event) {
    event.preventDefault();
    var error = '';
    $('.item_name').each(function() {
      var count = 1;
      if ($(this).val() == '') {
        error += "<p>Enter Item Name at " + count + " Row</p>";
        return false;
      }
      count = count + 1;
    });

    $('.item_quantity').each(function() {
      var count = 1;
      if ($(this).val() == '') {
        error += "<p>Enter Item Quantity at " + count + " Row</p>";
        return false;
      }
      count = count + 1;
    });

    $('.item_unit').each(function() {
      var count = 1;
      if ($(this).val() == '') {
        error += "<p>Select Unit at " + count + " Row</p>";
        return false;
      }
      count = count + 1;
    });
    var form_data = $(this).serialize();
    if (error == '') {
      $.ajax({
        url: "insert.php",
        method: "POST",
        data: form_data,
        success: function(data) {
          if (data == 'ok') {
            $('#item_table').find("tr:gt(0)").remove();
            $('#error').html('<div class="alert alert-success">Item Details Saved</div>');
          }
        }
      });
    } else {
      $('#error').html('<div class="alert alert-danger">' + error + '</div>');
    }
  });

});
</script>
<script>
$(document).ready(function(){
$(document).on('keypress', '.number_only', function(e){
return isNumbers(e, this);      
});
function isNumbers(evt, element) 
{
var charCode = (evt.which) ? evt.which : event.keyCode;
if (
(charCode != 46 || $(element).val().indexOf('.') != -1) &&      // “.” CHECK DOT, AND ONLY ONE.
(charCode < 48 || charCode > 57))
return false;
return true;
}
});
</script>

1 个答案:

答案 0 :(得分:-1)

问题在于您正在检查:

if(isset($_POST['submit']))

来自Jquery文档(Jquery serialize() doc)-

注意:只有“成功控件”才被序列化为字符串。由于没有使用按钮提交表单,因此没有序列化提交按钮的值

因此,您正在检查未发布的元素。

相反,您可以这样做:

if(isset($_POST['item_name']))

或更妙的是:

if ($_SERVER['REQUEST_METHOD'] == 'POST')
相关问题