DataTable上的“添加到购物车”ajax按钮

时间:2016-04-13 10:57:26

标签: php jquery ajax datatable

我开始使用DataTables,因为它们提供了我需要的内容:准备好使用分页,准备好使用在表1025上显示的项目数等等这是第一个问题。我想在最后放一个按钮Add to cart并使用ajax将项目放入购物篮中,稍后将以zip格式下载。到目前为止,我能够按下按钮,但我在ajax和jquery的东西非常新,并且无法弄清楚如何做购物车的东西。这就是我所拥有的:

表格:

<table id="example" class="display table table-striped table-bordered responsive">
                    <thead>
                        <tr>
                            <th>№</th>
                            <th>Program</th>
                            <th>Title</th>
                            <th>Description</th>                                
                            <th>Add to Cart</th>
                        </tr>
                    </thead>

以下是我将自定义按钮放在最后的方法

$(document).ready(function() {
  $('#example').DataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": "response.php", 
    "aoColumnDefs": [
    {
        "aTargets": [5],
        "mData": null,
        "mRender": function (data, type, full) {
            return '<a href="#" id="total_items" onclick="(\''+ full[0] +'\');">Add to cart</a>';
        }            

    }]
 });
});

我如何尝试将它们放入购物车

   $(document).ready(function(){

  $.ajax({
    type:'post',
    url:'store_items.php',
    data:{
      total_cart_items:"totalitems"
    },
    success:function(response) {
      document.getElementById("total_items").value=response;
    }
  });

});

function cart(id)
{
  var ele=document.getElementById(upload_id);
  var upload_title=document.getElementById("upload_title").value;
  var upload_description=document.getElementById("upload_description").value;

  $.ajax({
    type:'post',
    url:'store_items.php',
    data:{
      upload_title:upload_title,
      upload_description:upload_description
    },
    success:function(response) {
      document.getElementById("total_items").value=response;
    }
  });

}

function show_cart()
{
  $.ajax({
  type:'post',
  url:'store_items.php',
  data:{
    showcart:"cart"
  },
  success:function(response) {
    document.getElementById("mycart").innerHTML=response;
    $("#mycart").slideToggle();
  }
 });

}

和php部分

  session_start();

if(isset($_POST['total_cart_items']))
{
    echo count($_SESSION['upload_title']);
    exit();
}

if(isset($_POST['upload_title']))
{
    $_SESSION['upload_title'][]=$_POST['upload_title'];
    $_SESSION['upload_description'][]=$_POST['upload_description'];    
    echo count($_SESSION['upload_title']);
    exit();
}

if(isset($_POST['showcart']))
{
   for($i=0;$i<count($_SESSION['upload_title']);$i++)
   {
       echo "<div class='cart_items'>";      
       echo "<p>".$_SESSION['upload_title'][$i]."</p>";
       echo "<p>".$_SESSION['upload_description'][$i]."</p>";
       echo "</div>";
   }
   exit();  
}

到目前为止,我看到的主要问题是如何传递我存储在购物车中的商品的ID。在项目的数据表ID上是第一个№。然后我不知道如何用这个ajax将它传递给购物车。 如果需要,我还可以显示填充表格的response.php的php部分。

1 个答案:

答案 0 :(得分:0)

对于获取ID的MAJOR问题,您可以执行以下操作:

$(document).ready(function() {
$('#example').DataTable( {
   "processing": true,
   "serverSide": true,
   "ajax": "response.php", 
   "aoColumnDefs": [
   {
      "aTargets": [5],
      "mData": null,
      "mRender": function(data, type, full) {
return '<a class="btn btn-info btn-sm" href=#' + full[0] + '>' + 'Add to Cart' + '</a>';
      }
    }            

    }]
   });
 });

mRender功能有三个参数:

  

data =此单元格的数据,如mData

中所定义      

type =数据类型   (大部分都可以忽略)

     

full =此行的完整数据数组。