我有以下的 '字符串化' JSON數據:JSON數據未發送
$jsonData = '[{"tnum":"1","tnam":"Title1","snum":"24","word1":"this","word2":"is fun"},{"tnum":"343","tnam":"Title2","snum":"233","word1":"hello","word2:"again"}]'
我的AJAX是:
$.ajax({
url: "doSave3.php",
type: "POST",
data: jsonData,
contentType: 'application/json; charset=UTF-8',
success: function() {
alert("Data saved");
},
error: function() {
alert("Data were not saved");
}
});
和服務器端的PHP是:
if(isset($_POST['data'])){
$jsonData = $_POST['data'];
$result = json_decode($jsonData);
foreach ($result as $key => $value) {
if ($value) {
$sql = "INSERT INTO saved_lists (id, title_number, title_name, sub_number, word1, word2) VALUES (NULL, $value->tnum, '$value->tnam', $value->snum, '$value->word1', '$value->word2')";
mysql_query($sql);
}
}
}
我已經測試過PHP,並且它在我手動設置$ doSave3.php中的$ jsonData的時候有效。注意在做這個測試的時候,我還必須刪除if(isset($ _ POST ['data'])或者它不會超過if語句,當我恢復依賴$ _POST ['data']時,沒有行動,所以我敢肯定doSave3.php沒有收到POST數據。
一些幫助,將不勝感激。我已經在所有類似的帖子和糾正了一些東西,但沒有骰子尚未。
你應該使用類似'的print_r($ _ POST)'在你的PHP文件的頂部,看看到底有什麼是發送。 –
好的,我已經添加了這個,但我在哪裏可以看到日誌?這是一件讓我無法自己做進一步調試的事情,因爲我不知道如何看到這個值,因爲它是一個AJAX調用。 – riverrunner
它將在服務器響應中返回。您可以使用Firebug或Chrome開發者控制檯等功能查看服務器的原始響應。 –