0

ajax を使用してデータベースから情報を取得する際に問題が発生しました。ここからコードを取得していました:

  1. http://openenergymonitor.org/emon/node/107 ここのコードは機能しましたが、1 項目しか出力しませんでした
  2. シンプルな Ajax Jquery スクリプト - テーブル内の各行の情報を取得するにはどうすればよいですか? これをコードに追加しようとしましたが、機能させることができませんでした。

次のphpを使用して、テーブルからすべてを取得しています:

$result = mysql_query("SELECT * FROM voterecords");  

$data = array();
while ( $row = mysql_fetch_row($result) )
{
  $data[] = $row;
}
echo json_encode($data);

そのphpページに移動すると、次が出力されます。

[["68","1234","0","1234",""],["69","added with ajax","0","this item was added using ajax",""]]

上記の形式は次のとおりです: id、タイトル、投票、説明、所有者

少しはうまくいくと思いますが、JSONがどのように見えるべきかわからないため、確信が持てません。


さて、JSON から情報を取得し、それを html 要素 #output に入れることになっている jquery を次に示します。

$(function () 
  {

    $.ajax({                                      
      url: 'retrieve.php', data: "", dataType: 'json',  success: function(rows)
      {
        for (var i in rows)
        {
         var row = rows[i];          

          var id = row[0];              
          var name = row[1];
          var votes = row[2];  
          var info = row[3]; 

          $('#output').append("<b>id: </b>"+id+"<b> name: </b>"+name+"<b> votes: </b>"+votes+"<b> info: </b>"+info)
                      .append("<hr />");
    } 
  } 
});

これですべての情報が出力されると思っていましたが、何も起こりません。

4

1 に答える 1

0

)コールバック関数からの終了が欠落していることを除いて、コードは問題ありません。

また、JavaScript では、他の言語でよくあるように、次の行ではなく、同じ行に左中括弧を配置することをお勧めします。

修正/クリーンアップされたコード:

$(function () {
    $.ajax({url: 'retrieve.php', dataType: 'json'}).done(function(rows) {
        for (var i in rows) {
            var row = rows[i];
            var id = row[0];
            var name = row[1];
            var votes = row[2];
            var info = row[3];
            $('#output')
                .append("<b>id: </b>"+id+"<b> name: </b>"+name+"<b> votes: </b>"+votes+"<b> info: </b>"+info)
                .append("<hr />");
        }
    });
});
于 2012-07-15T09:13:59.583 に答える