无法使用Jquery显示JSON格式的数据库结果

时间:2013-01-05 20:22:07

标签: php jquery json codeigniter codeigniter-2

我有Codeigniter应用程序,它从数据库中获取数据作为结果数组,将数据转换为Json并显示结果。但是我继续将未定义作为显示结果。

模型

 $this->db->where('product_name',$sid);
      //  $this->db->select('product_title');
        $res = $this->db->get('products');
         $data = $res->result_array();  
         return $data;

查看:

<script language="javascript">
    $('#findsubmit').click(function() {
        $.get("/products/index.php/find/lookup",{id : $('#id').val() },function(data) {

            $('#result').html('Product name: ' + data.product_name);
            //+ ' Last name: ' + data.lastname);
        },"json");
        return false;
});
</script>

我在Firebug中收到的结果数组:

[{"category":"camera","product_name":"Sony HX20"},{"category":"camera","product_name":"Canon SZ220"}]

如果我创建这样的简单数组,一切正常:

return array('category' => 'camera','product_name' => 'Sony HX20');

我在Firebug中收到的结果数组:

{"category":"camera","product_name":"Sony HX20"}

1 个答案:

答案 0 :(得分:1)

在您的JSON数据中,您会收到一系列结果:data.product_name未定义,data[0].product_namedata[1].production_name

您应该尝试返回一个结果(例如手动构建的结果),或者迭代data

编辑:以下是有关如何使用$.each的示例:

var names = 'Product name: ';
$.each(data, function(index, element) {
    if (index > 0) {names += '; ';}
    names += element.product_name;
});
$('#result').html(names);