未定义的索引:显示的Retail_price我无法将retail_price传递到loading_add.php页面

时间:2018-12-16 06:39:11

标签: php jquery ajax

我正在为我的销售创建库存控制系统。我可以成功地序列化完整表格我有一个问题我在表格中有sell_price列,表格中没有零售价格列。如何将隐藏的零售价格发送到php页面。因为我需要在一天结束时计算利润销售。我通过ajex将所有记录发送到loading_add.php页面。到目前为止我尝试过的东西都写在下面。如何将retail_price隐藏字段发送到loading_add.php页面。

输入产品代码以获取产品价格。仅显示销售价格。零售应显示隐藏字段。

这是表单设计

 <td>
      <select class="form-control" id="product_id" name="product_id" required>
      <option value="">Please Select</option>
       </select>
     </td>

      <td>
  <input type="hidden" class='retailprice'  id="retail_price" name="retail_price" >
      <input type="text" class="form-control sell_price" id="sell_price" name="sell_price" placeholder="price" disabled>
      </td>
      <td>
      <input type="number" class="form-control sell_price" id="qty" name="qty" placeholder="qty" min="1" value="1"  required>
      </td>
      <td>
      <input type="text" class="form-control" placeholder="total_cost" id="total_cost" name="total_cost" disabled>
      </td>
      <td>
      <button class="btn btn-success" type="button" onclick="addproduct()">Add
        </button>
      </td>

获取价格

function getPrice() {
        $("#pro_price").empty();
        $.ajax({
            type: 'POST',
            url: '../php/product/get_price.php',
            dataType: 'JSON',
            data: {product_id: $("#product_id").val() },
            success: function(data) {
                console.log(data);
                $("#sell_price").val(data[0].sell_price);
                current_stock =Number(data[0].qty);
                $("#qty").focus();
                retail_price =Number(data[0].retail_price);
                pro_price =Number(data[0].sell_price);
            },
            error: function(xhr, status, error) {
            }
        });
    }

获取产品名称和价格后,点击添加Putton产品并添加到表格中 在表格中添加产品

function addproduct() {
var product = {
    cat_id: $("#cat_id option:selected").text(),
    product_name: $("#product_id option:selected").text(),
    product_id: $("#product_id").val(),
   retail_price: $("#retail_price").val(),
    pro_price: $("#pro_price").val(),
    qty: $("#qty").val(),
    total_cost: $("#total_cost").val(),
    button: '<button  type="button" class="btn btn-warning btn-xs")">delete</button>'
};
addRow(product);
$('#frmInvoice')[0].reset();

创建addRow函数将产品添加到列表中

 function addRow(product) {

              var $tableB = $('#product_list tbody');
    var $row = $("<tr><td><Button type='button' name = 'record'  class='btn btn-warning btn-xs' name='record' onclick='deleterow(this)' >Delete</td>" +
    "<td>" + product.product_id + "</td>" +
    "<td class=\"price\">" + product.cat_id + "</td>" +
    "<td>" + product.product_name + "</td>" +
    "<td><input type='hidden' class='retail_price' value="+ product.retail_price +">" + product.pro_price + "</td>" +
    "<td>" + product.qty + "</td><td>"
    + product.total_cost +
    "</td></tr>");
    $row.data("cat_id", product.cat_id);
    $row.data("product_id", product.product_id);
    $row.data("product_name", product.product_name);
    $row.data("price", product.price);
    $row.data("retail_price", product.retail_price);
    $row.data("qty", product.qty);
    $row.data("total_cost", product.total_cost);
    total += Number(product.total_cost);
    $('#total').val(total);
    console.log(product.total_cost);
    $row.find('deleterow').click(function (event) {
        deleteRow($(event.currentTarget).parent('tr'));
    });
    $tableB.append($row);

}

**

**var table_data = [];
    $('#product_list tbody tr').each(function(row,tr)
    {
        var sub = {
            'product_id' : $(tr).find('td:eq(1)').text(),
            'cat_id' : $(tr).find('td:eq(2)').text(),
            'product_name' : $(tr).find('td:eq(3)').text(),
              'retail_price': $(tr).find('td:eq(5)').text(),
            'sell_price' : $(tr).find('td:eq(4)').text(),
            'qty' : $(tr).find('td:eq(5)').text(),
            'total_cost' : $(tr).find('td:eq(6)').text(),
        };
        table_data.push(sub);
    });**

**

将数据发送到loading_add.php页面

  $.ajax({
        type : "POST",
        url: '../php/product/loading_add.php',
        dataType: 'JSON',

        data: {data:table_data},

loading_add.php

$relative_list = $_POST['data'];

        $stm = $conn->prepare("INSERT INTO sales_product(sales_id,cat_id,product_id,retail_price,sell_price,qty,total,profit)
          VALUES (?,?,?,?,?,?,?,?)");
        $stm->bind_param("issiiiii",$last_id,$cat_id,$product_id,$retail_price,$price,$qty,$total_cost,$profit);
        $cat_id= $relative_list[$x]['cat_id'];
        $product_id= $relative_list[$x]['product_name'];

$retail_price= $relative_list[$x]['retail_price'];
       $price= $relative_list[$x]['price'];
        $qty= $relative_list[$x]['qty'];
        $total_cost= $relative_list[$x]['total_cost'];

1 个答案:

答案 0 :(得分:1)

您可以在表格行中嵌入如下零售价:

"<table>
<tr data-retail-price="'+product.retail_price+'"><td><Button type='button' name = 'record'  class='btn btn-warning btn-xs' name='record' onclick='deleterow(this)' >Delete</td>" +
            "<td>" + product.product_id + "</td><td class=\"price\">" + product.cat_id + "</td><td>" + product.product_name + "</td><td>" + product.sell_price+
            "</td><td>" + product.qty + "</td><td>" + product.total_cost + "</td></tr>
</table>"

要获取零售价,您可以使用JQuery attrib函数:

var sub = {
            'product_id' : $(tr).find('td:eq(1)').text(),
            'cat_id' : $(tr).find('td:eq(2)').text(),
            'product_name' : $(tr).find('td:eq(3)').text(),
              retail_price : $(tr).attr("data-retail-price");
            'sell_price' : $(tr).find('td:eq(4)').text(),
            'qty' : $(tr).find('td:eq(5)').text(),
            'total_cost' : $(tr).find('td:eq(6)').text(),
        };