0

私の見解 -

$(document).ready(function(){

    $(".varsity").change(function(){

       var id=$(this).val();
        $.ajax({
            type: "POST",
            url: "<?php echo base_url()?>/admin/get_varsity_faculty",
            data:"varsity_id="+id,
            dataType: 'json',
            success: function(data)
            {     
               alert(data);

            }
        });

    });

});

私のコントローラー(管理者)

public function get_varsity_faculty()
{
   //admin controller
    $varsity_id=$this->input->post('varsity_id');
    $faculties=$this->admin_varsity->get_faculty_information($varsity_id);
    //print_r($faculties);
    echo json_encode($faculties);

}

私のビューで print_r($faculties) とアラート応答 (dataType:'json' を削除) がこの出力を取得すると --

 Array
(
[0] => Array
    (
        [unit_id] => 1
        [vid] => 3
        [unit_name] => Faculty of Civil Engineering 
        [form_starting_date] => 2013-05-15
        [form_end_date] => 2013-05-22
        [admission_date] => 2013-05-22
        [possible_result_date] => 2013-05-22
        [class_start_date] => 2013-05-21
        [is_active] => 1
    )

[1] => Array
    (
        [unit_id] => 2
        [vid] => 3
        [unit_name] => Faculty of Electrical & Electronic Engineering 
        [form_starting_date] => 0000-00-00
        [form_end_date] => 0000-00-00
        [admission_date] => 0000-00-00
        [possible_result_date] => 0000-00-00
        [class_start_date] => 0000-00-00
        [is_active] => 1
    )

[2] => Array
    (
        [unit_id] => 12
        [vid] => 3
        [unit_name] => Civil Engg
        [form_starting_date] => 2013-06-11
        [form_end_date] => 2013-06-12
        [admission_date] => 2013-06-18
        [possible_result_date] => 2013-06-04
        [class_start_date] => 2013-06-10
        [is_active] => 1
    )

)

私のモデルは本当にうまく機能します。しかし、json_encode($faculties); をエコーすると dataType:'json' を使用すると、[オブジェクト][オブジェクト] のような応答が得られます。応答を解析できません。難しい質問ではないことはわかっていますが、これを自分で克服するために何度も試みました。一言で言えば私の質問は、どのようにjson応答を取得し、それを私のビューでこの配列から解析できるかです。ありがとう

4

2 に答える 2

2

[Object, Object]エンコードしている配列は配列の配列であり、最終的に解析されたjsonのオブジェクトの配列になるため、表示されています。

元:

<?php

    $array = array(
      0 => array('id' => 1),
      1 => array('id' => 2)
    );

    $json = json_encode($array);

上記は次のようにエンコードされます。

[{"id" : 1}, {"id" : 2}]

次のようなもので解析すると$.parseJSON、2 つのオブジェクトを含む配列になるか、コンソールにログを記録すると、次のようになります。

[Object, Object]

または代わりに[object Object],[object Object]使用した場合(そうすべきではありません)。文字列のみを表示することに注意してください。返されたオブジェクトの構成を確認できるようにしたい場合は、常に使用する必要がありますalertconsole.logalertconsole.log

JavaScript 配列ルックアップで通常行うように、個々のオブジェクトにアクセスできます。上記が json_result という変数にある場合は、次を使用します。

json_result[0] // this would return the first object of the array.

次に、objects キーを使用して値を取得できます。

json_result[0]['id'] // this will equal 1
于 2013-06-18T20:27:09.517 に答える