0

結果配列としてデータベースからデータをフェッチし、データをJsonに変換して結果を表示するCodeigniterアプリケーションがあります。ただし、表示結果として未定義になり続けます。

モデル

 $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

(手動で作成したもののように)1つの結果のみを返すか、を繰り返すようにして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 に答える