0
有人可以讓我知道爲什麼這個AJAX Post請求不起作用。發送的默認listId爲0. savedList由ListJSON和ListName組成。代碼如下。AJAX請求INSERT和UPDATE不起作用
$.post('save.php', {"id":listId, "list":JSON.stringify(savedList),
function(savedListId) {
listId = savedListId;
alert('List saved');
// Refresh to a) get out of edit mode and b) give a bookmarkable URL
window.location = 'list.html?id='+listId;
});
服務器端是作爲初級講座:
if(empty($_POST['list'])) {
header('HTTP/1.0 400 Bad Request', true, 400);
exit('No list sent');
}
if(! $decodedList = json_decode($_POST['list'])) {
header('HTTP/1.0 400 Bad Request', true, 400);
exit('List does not decode');
}
if(empty($_POST['id']) || $_POST['id']=="null") {
$sql = "INSERT INTO Lists SET ListJSON = ?, ListName = ?";
$query = $mysqli->prepare($sql);
$query->bind_param("ss", $_POST['list'], $decodedList->listName);
$query->execute();
header('Content-type: application/json');
exit('"'.$mysqli->insert_id.'"');
} else {
$sql = "UPDATE Lists SET ListJSON = ?, ListName = ? WHERE ListID = ?";
$query = $mysqli->prepare($sql);
$query->bind_param("ssi", $_POST['list'], $decodedList->listName, $_POST['id']);
$query->execute();
header('Content-type: application/json');
exit('"'.(int)$_POST['id'].'"');
}
對我來說這看起來很合理。添加錯誤檢查? – Barmar
'$ .post'調用中缺少一個右大括號。這只是一個剪切和粘貼錯誤,或者在原始代碼中? – Barmar
@Barmar雅花邊大括號是一個剪切和粘貼錯誤。 – Anonymous