我已经阅读了多篇类似的文章,并且我的代码似乎与建议相匹配,但仍然没有返回数据。
这是我的 JS:
$.post('php/get_last_word.php', { user_id : userID },
function( data ) {
currentLanguage = data.language_id;
currentWord = data.word_id;
console.log("currentLanguage = " + currentLanguage)
console.log("currentWord = " + currentWord);
},'json');
以及相关的php:
$user_id=$_POST['user_id'];
mysql_select_db(wordsicle_search);
$sql = "SELECT `language_id`, `word_id` FROM `save_state` WHERE `user_id`=$user_id";
$result = mysql_query($sql,$con);
while ($row = mysql_fetch_assoc($result)) {
$encoded = json_encode($row);
echo $encoded;
}
以及生成的日志:
Connected successfully{"language_id":"1","word_id":"1"}
因此 json 数组正在被回显,但它并没有以 data
结束,因为 currentLanguage
和 currentWord
没有被填充。这是异步的问题吗?还是别的什么?
最佳答案
确保从 PHP 脚本返回到变量的有效 json
如果你的json对象是这样的,
{"language_id":"1","word_id":"1"}
您可以像这样访问值
currentLanguage = data.language_id;
currentWord = data.word_id;
示例 JsFiddle http://jsfiddle.net/NuS7Z/8/
您可以使用http://jsonlint.com/验证您的 json 格式是否正确。
在发布请求中指定 json
作为数据类型值将确保响应以 json
格式返回到成功回调。
$.post('php/get_last_word.php',{user_id:userID}, dataType:"json",function(data){
currentLanguage = data.language_id;
currentWord = data.word_id;
});
您还可以使用getJson
来简单地获取json数据。 getJson是ajax调用的简写,数据类型为json
关于php - jQuery $.post 不返回 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082676/