我正在为学校开发一个网上商店。我正在尝试制作一个 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中
你们能帮我一下吗?
附注:
如果我去:
cart.php?command=addToCart&productID=28&amount=10&size=12&product_name=Test
它返回了这个
1
0
28
Test
10
12
在 HTML 中,因此脚本可以工作并返回 html! 我在加载产品时也做了同样的事情,它就像一个魅力。
最佳答案
假设您所说的一切都是真的,那么这里可能会出现一些问题(按照可能性的顺序):
- 是否对另一个域进行 AJAX 调用?如果是这样,除非您输出一些特殊的 header ,否则这将不起作用。
- 如果您要定位的元素不存在,jQuery.load 将失败。因此,请仔细检查您的页面上是否有 #cart_page 元素。
AJAX 页面未返回正确的 HTTP 响应代码。这将在您的控制台中可见。但是您可以通过将代码扩展为来获取更多信息:
$("#cart_page").load("cart.php?command=addToCart&productID="+productID+"&size="+size+"&amount="+amount+"&product_name="+product_name+"", function (响应、状态、xhr){ 如果(状态==“错误”){ console.log("错误代码:"+ xhr.status);//错误代码 console.log("错误文本:"+ xhr.statusText);//错误文本 } });
其他一些 JS 错误。由于我们无法看到您的所有代码,因此很难看到。检查控制台是否有任何错误并将其添加到您的第一篇文章中。
(对第 3 点中代码的格式表示抱歉。我不知道如何使用此语法将代码嵌入到列表中。缩进不起作用)
关于php - Jquery .load() 不返回 HTML(URL 中有 ""空格!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460872/