1

JSON_encodeとjQueryに問題があり、次のコードで完全な配列を投稿するようになっていますが、必要な1つの配列だけをエコーすることはできません。

$.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

「、'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 に答える
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 に答える
0

$.postを使用する代わりに

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

data変数をログに記録しましたか?何を記録しますか?またmysql_*、非推奨になり、明確に操作してPDOの使用を開始します。$row[0]['message']しかし、あなたは$message変数に割り当てるつもりだったと思います。メモリがうまく機能する場合は、mysql_*常にassoc配列の配列または配列の配列のいずれかを返します。

この件については、JavaScriptにはassoc配列はなく、オブジェクトのみがあるため、のようにデータにアクセスするのではなくdata['content']、を使用しますdata.content。角かっこ表記は便宜上あるので、変数の値をプロパティ名(evalなし)として使用できます。もちろん、EVILです。

于 2012-08-22T08:11:37.077 に答える
-2

あなたのPHPにも:

$row = mysql_fetch_assoc($result);

$row['message']表記を使用する場合は、mysql_fetch_arrayではありません。

于 2012-08-22T08:07:14.143 に答える