1

我的 JSON_encode 和 jQuery 有问题,我让它用以下代码发布完整的数组,但我不能让它只回显我需要的一个数组。

$.get("/indexget.php", { page: "goals" },function(data) {
$('#bodyContentStuff').text(data);

完整的 jQuery 代码

$("#navLinkGoals").click(function () {
    $("#bodyTitleBar").text("Goals");
    $.get("/indexget.php", { page: "goals" },function(data) {
        $('#bodyContentStuff').text(data);
    }
);

完整的 PHP 代码

if($_REQUEST['page'] = 'goals'){
    $result = mysql_query("SELECT * FROM content WHERE page='indexGoals'") 
    or die(mysql_error()); 
    $row = mysql_fetch_array( $result );
    $message = $row['message'];
}
echo json_encode(array("content"=>"$message"));

我是一个编程的菜鸟,但如果你想看看它在做什么,该站点是http://www.gronge.com ,只需单击目标链接。

编辑:哦,我也试过了

$('#bodyContentStuff').text(data['content']);

但它没有用。

4

5 回答 5

1

如果那是逐字粘贴,则调用 $.get 时缺少右括号

$("#navLinkGoals").click(function () {
    $("#bodyTitleBar").text("Goals");
    $.get(
        "/indexget.php",
        {
            page: "goals"
        },
        function(data) {
            $('#bodyContentStuff').text(data);
        }
    ); // <== Right here
);

(代码重新格式化以突出差异)

刚刚注意到 PHP 的一个潜在问题:

if($_REQUEST['page'] = 'goals'){ //<== are you assigning or comparing?
    $result = mysql_query("SELECT * FROM content WHERE page='indexGoals'") 
    or die(mysql_error()); 
    $row = mysql_fetch_array( $result );
    $message = $row['message'];
}
echo json_encode(array("content"=>"$message"));
于 2012-08-22T08:07:58.027 回答
1

您是否尝试过像这样放置“,'json'”:

$.get("/indexget.php", { page: "goals" },function(data) {
    $('#bodyContentStuff').text(data.content);
}, 'json')

没有那个 jquery 会智能地猜测格式是什么......

如前所述,它应该是 data.content

如前所述,使用 console.log(data) 来查看真正的数据(可能是一个字符串,而它应该是一个 json 对象?)

于 2012-08-22T08:07:36.887 回答
0

您是否记录了data变量?它记录什么?另外:mysql_*已弃用,避开并开始使用 PDO。但我认为你的意思是分配$row[0]['message']$message变量。如果记忆对我有用,mysql_*总是返回一个 assoc 数组或一个数组数组。

当我们谈到这个主题时:JavaScript 没有关联数组,只有对象,所以与其访问数据,不如data['content']使用data.content. 括号符号是为了方便起见,因此您可以使用变量的值作为属性名称(不带 eval),当然是EVIL

于 2012-08-22T08:11:37.077 回答
0

而不是使用 $.post

 $("#navLinkGoals").click(function () {
   $("#bodyTitleBar").text("Goals");
    $.post("/indexget.php", { page: "goals" },function(data) {
    $('#bodyContentStuff').text(data);
}
);
于 2012-08-22T08:06:07.933 回答
-2

也在你的 php 上:

$row = mysql_fetch_assoc($result);

而不是 mysql_fetch_array,如果你想使用$row['message']符号。

于 2012-08-22T08:07:14.143 回答