この問題でどこが間違っているのか分かりません。それはすべてうまく動作していたものの1つで、調整を加えた後、私は眠りに落ち、私のしたことを思い出すことができません。ので、私の問題は、このAJAX呼び出しが失敗したということです。jquery 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エラーを行うとき、私は応答して機能を取得します。
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呼び出しを関数に行くためにイベントハンドラを持っている:ここ
が呼び出されている私のPHPファイルである
event.stopImmediatePropagation();
var upcNum = $(this).attr('id');
var formID = 'info:' + upcNum;
console.log(upcNum);
var formData = $(this).serialize();
console.log(formData);
addItem(formData);
Iこれは本当に愚かなことだと思うけど...しかし、私はどこからエラーが出てくるのか、なぜページがリフレッシュしているのか分からない。
火災のバグでは、ファイルは赤色で表示され、リクエストヘッダーとレスポンスヘッダーのみが表示されます。私の本当のキッカーは、phpファイルが実際に想定されているような情報を処理し、返されるべきjsonが有効なjsonになるということです。
私のコードを笑ってはいけません。もしあなたが私が批評をうまく取るのを手助けしたいのであれば。私をひいきにしないでください。
あなたが疲れていても、適切で完全なコードです。 AJAX呼び出しやそれに 'href'属性を持つ他の要素をトリガーするリンクをクリックしていますか?もしそうなら 'event.preventDefault()'を追加してください。 –
不完全なコードが残念です。私は実際のイベントハンドラと関数名を残しただけです。もう一度起きないでしょう –
あなたは絶対に正しいコードスピリットでした。私が眠りにつく前に行った変更の1つは、一般的なevent.preventDefault()をオフにして、まったく違うものをトラブルシューティングすることでした。 –