所以我不确定我在这个问题上出了什么问题。它是其中之一,一切正常,我做了一个调整,然后我睡着了,不记得我做了什么。所以我的问题是这个ajax调用失败了:
var url = 'lib/php/addToCart.php';
var sent = $.post(url, data, null, 'json');
sent.done(function (data) {
$('.badge').html(Object.keys(data).length);
console.log('item added to cart');
alert("Added To Your Cart. Please Continue Shopping");
});
sent.fail(function (data, b, c) {
console.log("failed adding item: " + c);
var propValue;
for(var propName in b) {
propValue = b[propName];
console.log(propName,propValue);
}
});
我可以从失败中得到的唯一错误是"错误"当我执行jqXHR错误时,我得到一个响应函数。
这是我正在调用的php文件:
session_start();
$itemNum = $_POST['upc'];
$price = $_POST['price'];
$title = $_POST['title'];
$qty = 1;
$cartData = $conn->prepare("SELECT available FROM yardSale.dvdTbl WHERE upc = ?");
$cartData->bind_param("s", $itemNum);
$cartData->execute();
$cartData->store_result();
$cartData->bind_result($available);
$cartData->fetch();
$linePrice = $price * $qty;
$cartName = $title;
$_SESSION['cart'][$cartName] = array(
"cartName" => $cartName,
"itemNum" => $itemNum,
"title" => $title,
"itemPrice" => $price,
"linePrice" => $linePrice,
"qty" => $qty,
"available" => $available
);
echo json_encode($_SESSION['cart']);
然后如果你需要它我有一个事件处理程序来转到带有ajax调用的函数:
event.stopImmediatePropagation();
var upcNum = $(this).attr('id');
var formID = 'info:' + upcNum;
console.log(upcNum);
var formData = $(this).serialize();
console.log(formData);
addItem(formData);
我确定这是我看到的另一个非常愚蠢的事情......但我无法弄清楚错误的来源,或者为什么页面是令人耳目一新。
在fire bug中,文件只显示红色,只有请求标题,没有响应标题。对我来说真正的踢球者是php文件实际上处理的信息就像它应该的那样,应该返回的json是有效的json。
请不要嘲笑我的代码...如果你想帮助我很好地接受批评;但请不要光顾我。答案 0 :(得分:0)
我认为错误出现在这部分代码中:
for(var propName in b) {
propValue = b[propName];
console.log(propName,propValue);
}
变量propName不是索引,而是值,因此您必须执行以下操作:
for(var propIndex in Object.keys(b)) {
propValue = b[propIndex];
console.log(propIndex,propValue);
}
答案 1 :(得分:0)
只需要event.preventDefault()...感谢Code Spirit