这令人困惑......我不明白为什么这不起作用......看起来非常简单:
var _t = $('#newbook-title').serialize();
var _a = $('#newbook-author').serialize();
var _u = $('#newbook-authorurl').serialize();
var _w = $('#newbook-why').serialize();
$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) {
alert( data.status + ',' + data.message);
});
然后在我的newbook.php中:
<?php
echo "{\"status\": \"false\", \"message\":\"Made it here.\"}";
return;
?>
警报始终未定义,未定义为什么?我也尝试过.val()而不是.serialize()
答案 0 :(得分:4)
可能是因为内容未被解释为JSON。告诉$.post
您希望收到的格式:
$.post("newbook.php", {t: _t, a: _a, u: _u, w: _w}, function(data) {
alert( data.status + ',' + data.message);
}, 'json');
另一种选择是发送JSON内容类型标头,jQuery将为您解释。这是更符合标准的“正确”方法:
// before content is output in your PHP script
header('Content-type: application/json');