我有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"}
答案 0 :(得分:1)
在您的JSON数据中,您会收到一系列结果:data.product_name
未定义,data[0].product_name
和data[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);