0

我有 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"}
4

1 回答 1

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);
于 2013-01-05T20:50:59.723 回答