jQuery $ .post不返回JSON数据 - php

我已经阅读了多个类似的帖子,并且我的代码似乎与建议相符,但是仍然没有返回数据。

这是我的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结尾,因为没有填充currentLanguagecurrentWord。这是异步性的问题吗?或者是其他东西?

参考方案

确保您有一个有效的json从PHP脚本返回到变量

如果您的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 Call的简写,数据类型为json

http://api.jquery.com/jQuery.getJSON/

验证php中的javascript对象 - php

在我的用户界面中,用户可以构建一些javascript对象,例如:var box = { "width": "100px", "height": "200px", "click": function () { alert("You clicked t…

使用jQuery将值增加到attr - php

我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…

CKEditor在我的文本中添加了div和一些不需要的字符 - php

我在Web应用程序中将CKEditor用于后端。当我从另一个位置复制并粘贴文本时,它会在复制粘贴的文本的末尾添加<div>Â</div>,当我将其发布到数据库中时,甚至会变得更糟。它在不需要的区域中添加了许多Â和字符。我该如何解决?我的网络应用程序中也有jQuery库。 参考方案 我通过将页面编码从<META http-equi…

使用php创建JS文件 - php

我有这样的代码是使用php创建的<?php $script="$(document).ready(function(){alert('hai');});"; ?> 据我在其他网站中提到的,他们使用了fopen()和fwrite()来打开文本文件并将其写入。我不想创建txt文件,我可以使用php创建一个脚本文…

jQuery的不发布数据在IE浏览器 - php

我创建一个简单的表单,当我选择任何东西时,我将拥有一个组合框,然后将一个函数置于onchange事件上,以便对其进行调用。然后我通过jQuery将数据发送到一个帮助文件中<script type="text/javascript"> $.noConflict(); function Searchwine(obj,str) { …