1

我正在尝试进行 ajax 调用以将商品添加到购物车,而无需用户离开页面。我设法编写了以下代码,但没有任何效果。在 addtocart.php 上,我手动输入了,ProdID但没有回显。有人可以看看我的 ajax 和 addtocart.phpsizeCategory

AJAX

<script>
    $(document).ready(function(){
$('.ajax').click(function(){
$.ajax({ 
url: '../main/php/addtocart.php',
         type: 'post',
         data:{
            length:$('#length').val(),
                Category:$('#Category').val(),
                id:$('#id').val(),
                Qty:$('#Qty').val()

                  },
         success: function(data) {

                  }
});
});
});
</script>

PHP

<?php
    include('dbconnect.php');
    $id = $_POST['id'];
    $length = $_POST["size"];
    $qty = $_POST['Qty'];
    $Category = $_POST['Category'];

$stmt = $conn->prepare("
SELECT  ProductName, Category.Name, size, Price
FROM itembag, Product, Category
WHERE Product.ProdID =:id
AND size= :length  AND Category.Name = :Category Limit  1");
$stmt->bindParam('id',$id);
$stmt->bindParam('length',$length); 
$stmt->bindParam('Category',$Category); 
$stmt->execute();
$i=0;
 foreach ($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) {
             if ($i == 0) {  
echo 'status:1,id:'.$row['ProdID'].',Price:'.$row['Price'].',txt:\'\
\
<table width="100%" id="table_'.$row['ProdID'].'">\
  <tr>\
    <td width="60%">'.$row['ProductName'].'</td>\
    <td width="40%">$'.$row['Price'].'</td>\
    <td width="10%">$'.$row['Category'].'</td>\
  </tr>\
</table>\'';
}
}
?>

附加信息:一个项目可能有 1 个 ID,但它有不同的尺寸和许多类别。

4

3 回答 3

1

缺少要 POST 的数据

data: {
//Here you have to put your data
},

您必须获取要发布的值,例如:

('.ajax').click(function(){
 pid = $('#pid').val();//#pid->is the id of your input, the same bellow
length = $('#length').val();
Qty = $('#Qty').val();
Category = $('#Category').val();
$.ajax({ 
  url: '../main/php/addtocart.php',
  data:{
    pdi:pdi,
    length:length,
    Qty :Qty ,
    Category : Category},
    type: 'post',
}).done(function(data) {
 $(data).html('#containerShoppingCart');//Callback Replace the html of your shoppingCart Containe with the response of addtocart.php
}).fail(function(){ alert("failed!"); });//Some action to indicate is Failing 

您可以查看http://api.jquery.com/jQuery.ajax/以获取更多信息

于 2013-06-25T01:49:19.787 回答
1

根据您的情况,HTMLAJAX看起来像这样:

注意:如果您正在使用,则必须通过not byAJAX引用您的选择器idname

AJAX

$(document).ready(function()
{
    $('#button').click(function()
    {
        var id = $('#id').val();
        var length = $('#length').val();
        var qty = $('#Qty').val();
        var cat = $('#Category').val();

        $.ajax({
            url: '../main/php/addtocart.php',
            type: 'POST',
            data: { id:id, length:length, qty:qty, cat:cat },
            success: function(data)
            {
                //whatever you want to do
            }
        })
    });
});

如果您在开始时这样做可能会更好PHP

if(isset($_POST['id']) && isset($_POST['length']) && isset($_POST['Qty']) && isset($_POST['cat']))
{    
    $id = $_POST['id'];
    $length = $_POST['length'];
    $qty = $_POST['Qty'];
    $Category = $_POST['Category'];
于 2013-06-25T01:59:49.653 回答
0

也许使用 jQuery 加载可能会帮助您加载/更新您的购物车。 http://api.jquery.com/load/

于 2013-06-25T01:14:12.523 回答