2012-07-15 99 views
0

无法使用ajax从数据库中检索信息。我是从这里获取代码:使用jquery从json获取信息

  1. http://openenergymonitor.org/emon/node/107 代码从这里工作,但只会输出1项
  2. Simple Ajax Jquery script- How can I get information for each of the rows in the table? 我试图把它添加到我的代码,但我无法得到它的工作。

我得到一切从一张桌子下面的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

$(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 />"); 
    } 
    } 
}); 

我期待这对输出的所有信息,但没有了jQuery发生。

回答

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 />"); 
     } 
    }); 
}); 
+0

不知道在哪里abouts不言而喻。 – cohen 2012-07-15 09:21:53

+0

总是检查控制台,如果JS中没有按预期工作 - 它会告诉你有像这样的语法错误和错误(可能)发生的地方。我编辑了我的帖子以包含清理后的修正版本的代码。还要注意,通过将各种JSON属性提交到局部变量,你并没有真正做出任何保存。不过,如果你这样做,考虑一个multi-var模式(Google it),而不是每次指定'var'。 – Utkanos 2012-07-15 09:24:17

+0

我还没有做任何JS或jQuery之前,如此生病查找如何调试它,以阻止这种情况发生在未来。我明白了将JSON属性保存到变量的意义,我可以使用JSON变量本身。它不是我的代码,所以一旦它的工作可能更密切地看它,并拿出那些冗余位。 感谢您的帮助 – cohen 2012-07-15 10:08:33