1

我正在为学校开设网上商店。我正在尝试制作jquery/ajax购物车系统。

现在这是我的jquery.load();代码

//LOAD PHP FUNCTION TO ADD TO CART
        $("#cart_page").load("cart.php?command=addToCart&productID="+productID+"&size="+size+"&amount="+amount+"&product_name="+product_name+"");

这是 cart.php 文件:

<?php

//ADD PRODUCTS TO CART
if($_GET['command'] == 'addToCart'){
    /********* START SESSION *********/
    session_start();

    if($_GET['productID'] == "" || $_GET['amount'] < 1 || $_GET['size'] == "" || $_GET['product_name'] == "") return;

    $max=count($_SESSION['cart']);

    if(is_array($_SESSION['cart'])){
        $max=count($_SESSION['cart']);

        for($i=0;$i<$max;$i++){
            if($_GET['productID'] == $_SESSION['cart'][$i]['productid']){
                if($_GET['size'] == $_SESSION['cart'][$i]['size'] ){
                    $product_exists = 1;
                }   
            }
        }

        if($product_exists != 1){
            $_SESSION['cart'][$max]['productid'] = $_GET['productID'];
            $_SESSION['cart'][$max]['product_name'] = $_GET['product_name'];
            $_SESSION['cart'][$max]['amount'] = $_GET['amount'];
            $_SESSION['cart'][$max]['size'] = $_GET['size'];
        }

    }else{

        $_SESSION['cart']=array();
        $_SESSION['cart'][0]['productid'] = $_GET['productID'];
        $_SESSION['cart'][0]['product_name'] = $_GET['product_name'];
        $_SESSION['cart'][0]['amount'] = $_GET['amount'];
        $_SESSION['cart'][0]['size'] = $_GET['size'];

    }

if(is_array($_SESSION['cart'])){
$max=count($_SESSION['cart']);
$cart = <<<EOD
<div class="cart_page">
    <div class="cart_product_line">
    $max
        <ul>

EOD;
        for($i=0;$i<$max;$i++){
            $arrayID = $i;
            $cart_productID = $_SESSION['cart'][$i]['productid'];
            $cart_productName = $_SESSION['cart'][$i]['product_name'];
            $cart_amount = $_SESSION['cart'][$i]['amount'];
            $cart_size = $_SESSION['cart'][$i]['size'];

$cart.= <<<EOD
            <li>$arrayID</li>
            <li>$cart_productID</li>
            <li id="$cart_productID">$cart_productName</li>
            <li class="amount">$cart_amount</li>
            <li class="size">$cart_size</li>
EOD;
        }

$cart.= <<<EOD
        </ul>
    </div>
</div>
EOD;
    }
}
echo $cart;

?>

现在它做了我想要的一切。但是它给出的结果'echo $cart.php'没有显示在我的 index.php 中

你们能帮帮我吗?

PS:

如果我去:

cart.php?command=addToCart&productID=28&amount=10&size=12&product_name=Test

它还给了这个

1
0
28
Test
10
12

在 HTML 中,因此脚本可以正常工作并返回 html!我在加载产品时也这样做,它就像一个魅力。

4

2 回答 2

1

假设您所说的一切都是真的,那么这里可能会出现几件事(按可能性顺序):

  1. 是否正在对另一个域进行 AJAX 调用?如果是这样,除非您输出一些特殊的标题,否则这将不起作用。
  2. 如果您定位的元素不存在,jQuery.load 将失败。因此,请仔细检查您的页面上是否有 #cart_page 元素。
  3. AJAX 页面未返回正确的 HTTP 响应代码。这将在您的控制台中可见。但是您可以通过将代码扩展为:

    $("#cart_page").load("cart.php?command=addToCart&productID="+productID+"&size="+size+"&amount="+amount+"&product_name="+product_name+"", function(response, status, xhr) { if (status == "error") { console.log("Error code :" + xhr.status); // error code console.log ("Error text :" + xhr.statusText); // error text } });

  4. 其他一些 JS 错误。由于我们看不到您的所有代码,因此很难看到。检查控制台是否有任何错误并将它们添加到您的第一篇文章中。

(很抱歉第 3 点中的代码格式。我不知道如何使用这种语法将代码嵌入到列表中。缩进不起作用)

于 2013-01-22T14:35:28.130 回答
0

太傻了。。

$product_name我生成的来自数据库。

这个名字有一个“ ”空格。

这样做是它成功加载了脚本,但是因为它在 URL 中有一个 " " 空格,所以 jQuery 将其视为不正确的 URL,并且没有将脚本嵌入到页面中。

我觉得奇怪的是它没有给我任何错误!?

非常感谢你们帮助我!

于 2013-01-22T15:08:33.370 回答