0

以下のjsonをループする必要がありますが、以下のコードはjsonの各文字をループし、「未定義」を表示しています:(以下のjsonに何か問題がありますか???助けていただければ幸いです)

{"news_id":"1","news_title":"News Title One","news_date":"2012-03-20","news_pic":"album-bb[6].jpg","news_desc":"Here goes the news title one Here goes the news title one Here goes the news title one Here goes the news title one.","gallid":"3"}
{"news_id":"2","news_title":"News Title Two","news_date":"2012-04-14","news_pic":"174863_163190093755777_2032987021_q.jpg","news_desc":"News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two News Title Two.","gallid":"0"}

これは、クリックイベントで発生する私のコードです:

var phpNews;
var NewsObject;

$(document).ready(function () {

    $("#btnNewsPage").click(function()
    {
        $.post("server/news.php",null,function(e){
            NewsObject = e;
            $.mobile.changePage("#NewsPage");
        });
    });

    $('#NewsPage').live('pagebeforeshow',function(event, ui){
        var list;
        $.each(NewsObject, function(k,v){
            list = v.news_title;
        });

        $("#displayNews").html(list);
    });

})
4

1 に答える 1

2

オブジェクトNewsObjectではなく文字列のようです。JSONこれは、JQuery が応答タイプを推測できないために発生する可能性があるため、おそらく要求に対して指定する必要がありますdataType( $.postdocumentation )

$.post("server/news.php", null, function(e){ ... }, 'json');

PS また、JSON有効ではないように見え{'a':'b'}ます{'a':'b'} {'c':'d'}

更新しました。以下のコメントに基づいて、次の PHP コードを使用することをお勧めしますserver/news.php

<?php 

require "../includes/config.php"; 
require "../includes/h.conn.php"; 
require "../includes/admin.id.php"; 

$strSQL = "select * from news where admin_id=" .$admin_id; 
$objRS = mysql_query($strSQL);
$News_Obj = array();

while ($row = mysql_fetch_assoc($objRS)) {
    $record = array (
               "news_id" => $row['news_id'], 
               "news_title" => $row['news_title'], 
               "news_date" => $row['news_date']
    );
    $News_Obj[] = $record; 
}

// don't forget to clear after yourself: mysql_free_result, disconnect

header("Content-type: application/json");
echo json_encode($News_Obj);
?>

また、Firebug を使用して、スクリプトを正確に返すものと、リクエストを実行したときに発生する HTTP または Javascript エラーを確認することもできます。

于 2012-04-13T15:12:39.790 に答える