Php 使用jQuery遍历JSON数据

Php 使用jQuery遍历JSON数据,php,javascript,jquery,Php,Javascript,Jquery,我不知道如何将一堆MySQL行放入JSON数据结构中,并在java脚本中迭代每个行字段 这是我在codeigniter中的查询 function get_search_results() { //$this->db->like('title', $searchText); //$this->db->orderby('title'); $query = $this->db->get('movies'); if($query-&

我不知道如何将一堆MySQL行放入JSON数据结构中,并在java脚本中迭代每个行字段

这是我在codeigniter中的查询

function get_search_results() {

    //$this->db->like('title', $searchText);
    //$this->db->orderby('title');
    $query = $this->db->get('movies');

    if($query->num_rows() > 0) {

        foreach($query->result() as $movie) {

            $movies[] = $movie->title;                

        }

    }

    return $movies;

}
为json编码数组

$rows= $this->movie_model->get_search_results();
echo json_encode($rows);
我的jQuery AJAX请求

 $.ajax({
      type: "GET",
      url: "publishlinks/search_movies",
      data: searchString,
      ...
这就是我一直试图遍历java脚本中的行的方式。它在每个字符上迭代:1t2h3e4g。。。7 e 我需要这个:1第二场比赛输了3你

   success: 
      function(result) {                                
        $.each(result, function(key, val) {
        alert(key + ' ' + val);
      })

//alert(result);
}

您的PHP是否返回JSON头

header('Content-type: application/json');
否则试试

result = JSON.decode(result);

在每个循环之前,它看起来像是将结果作为字符串处理,而不是解析的JSON,因此在其上进行迭代,就好像它是字符串一样。这可能意味着它没有在响应中返回干净的JSON编码字符串,因此我会检查响应以确保它是有效的JSON。jQuery应该能够智能地猜测内容类型并进行相应的解析


您还可以在ajax请求上尝试dataType:json选项,强制将其解析为json,而不是让jQuery猜测。

我想您的问题是,您没有获取实际的json,而是获取简单的字符串响应


在jquery ajax请求中使用$.getJSON或将数据类型指定为json

使用$.ajax的数据类型属性

数据类型

您希望从服务器返回的数据类型 服务器

使用firebug查找响应变量的类型。在您的例子中,响应是字符串,但它应该是数组还是对象

如果您不希望jQuery自动评估json,请按原样使用,并在成功函数中添加以下内容:

var parsed=$.parseJsonresponse


以下是parseJson方法的文档:

请确保从服务器端返回正确的内容类型。对于JSON,应该是application/JSON

$rows = $this->movie_model->get_search_results();
header('Content-type: application/json');
echo json_encode($rows);
还要将dataType:json添加到jQuery请求中,正如beefsack所说:

$.ajax({
  type: "GET",
  url: "publishlinks/search_movies",
  data: searchString,
  dataType: "json",
  ...

我觉得不错。你遇到了什么样的问题?有错误吗?你是说这样的?哦,谢谢你,出于某种原因,我把数据类型“json”注释掉了,我甚至在我的问题O.O中省略了这一部分
dataType: "json",
success:function(data){
var obj=$.parseJSON(data);
data=obj.data;
$.each(data,function(){
   //json data
})
}