【问题标题】:Save data on database after click on place order单击下订单后将数据保存在数据库中
【发布时间】:2017-11-25 08:40:27
【问题描述】:

我的代码有什么问题?我什至无法下订单或将其保存在数据库中。我正在使用 ajax/jquery,它成功了,但问题是,它没有保存在数据库中。

PS:我还包括了 place_order();在脚本类型下。

按钮:

<button id="place_order" class="btn btn-black">PLACE ORDER</button>

jquery:

//Placing Order / Complete the Transaction
function place_order() {
    $('#place_order').click(function(e){
        var place_order = $('#place_order').val();
        $.ajax({
            type: 'POST',
            url: '../pages/class.php',
            data: {place_order:place_order},
            success:function(data) {
                location.href="../pages/index.php";
            }
        });
    });
}

类.php

if(isset($_POST['place_order'])) {
     if(isset($_SESSION['item_cart'])) {
          foreach($_SESSION['item_cart'] as $id=>$val) {
              $user_id = $_SESSION['id']; //id of users
              $product_stocks = $val['product_stocks']; //product stocks
              $product_id = $val['product_id']; //id of product/item                         
              $product_name = $val['product_name']; //name of product
              $product_quantity = $val['product_qty']; //quantity of product
              $product_price  = $val['product_price']; //price of product
              $product_size = $val['product_size']; //size of product
              //Total Price
              $total = $product_quantity * $product_price;

              //Check if the stocks is less than quantity
              if ($product_stocks < $product_quantity) {
                   echo "Insufficient Stock";
              } else {
                  //Insert it on database
                  $insert_query = "INSERT INTO tbltransactions(product_name, product_price, product_qty, total_price, product_id, account_id) VALUES('$product_name', $product_price, $product_quantity, $total, $product_id, $user_id)";
                  $query = mysqli_query($db_conn, $insert_query);
                  //If the query is success, update the stocks in database        
                  if($query) {
                      $update_query = "UPDATE tblproduct_extension SET product_stocks = $product_stocks - $product_quantity WHERE product_id = '$product_id' AND product_size='$product_size'";
                      $query = mysqli_query($db_conn, $update_query);
                      //unset the SESSION
                      unset($_SESSION['item_cart']);
                  }
              }   
          }   
      }   
  }   

【问题讨论】:

  • 出现错误了吗?在控制台或任何 php/mysql 错误?
  • php/mysql 中没有错误。但我不知道如何检查控制台中的错误。
  • 右键->在任意浏览器中检查,了解开发者控制台,google一下
  • 控制台日志中没有错误。
  • 我在网络(谷歌开发者)上检查过,表单数据只有,place_order=

标签: javascript php jquery ajax mysqli


【解决方案1】:

变量place_order没有赋值

     data: {place_order:place_order},

给变量赋值

    var place_order = $("#place_order").val(); //change field name

【讨论】:

  • 完成。检查一下。
  • 我应该分配什么值?
  • 如果您不想将值传递给服务器删除数据data: {place_order:place_order}, 并删除if(isset($_POST['place_order'])) { }
  • 或将var place_order = $('#place_order').val();改为var place_order = 1;
猜你喜欢
  • 2015-05-15
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 2013-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多