2016-03-22 5 views
0

私はコンソールに入れたjsonの結果です。しかし、それを私のドロップダウンに追加すると、物理学、化学、および試験科目だけが示されます。どのように生物学を得るか。以下はアヤックスを使ってphp codeigniterの結果配列を

[ 
    [ 
    {"id":"1","subject_name":"Physics"}, 
    {"id":"2","subject_name":"Chemistry"}, 
    {"id":"9","subject_name":"test subject"} 
    ], 
    [ 
    {"id":"7","subject_name":"Biology"} 
    ] 
] 

私のAjaxコードの下

$.ajax({ 
    type: 'POST', 
    dataType:"json", 
    // url:'<?php echo base_url()."SchoolAdmin/delete_electricUsage";?>', 
    url: '<?php echo base_url('SchoolAdmin/getclass_id'); ?>', 
    data: { class_std : class_std}, 
    success: function (result) { 
     var listItems= ""; 
     listItems+= "<option value='" + 'select' + "'>" +'Select' + "</option>"; 
     for (var i = 0; i < result[0].length; i++){ 
      listItems+= "<option value='" + result[0][i].id+ "'>" + result[0][i].subject_name + "</option>"; 
     } 
     $("#subject").html(listItems); 
    } 
}); 

はあなたのresultが配列である

public function getclass_id($class_id,$school_id) 
{ 
    return $this->db->select('id')->from('class_table')->where('standard',$class_id)->where('school_id',$school_id)-> 
    get()->result(); 
    //echo $this->db->last_query(); 
} 

public function getSubject($cid,$school_id) 
{ 
    return $this->db->select('id,subject_name')-> 
    from('subject')->where('school_id',$school_id)-> 
    where('class_id',$cid)->get()->result_array(); 
} 

答えて

2

、ここで

public function getclass_id() 
{ 
    $school_id = $this->session->userdata('school_id'); 
    $sess_id = $this->session->userdata('userid'); 
    $user_id = $this->session->userdata('user_id'); 
    if(($sess_id)) 
    { 
     $class_id=$this->security->xss_clean($this->input->post('class_std')); 
     $this->load->model('School_Model'); 
     $cid=$this->School_Model->getclass_id($class_id,$school_id); 

     foreach ($cid as $r) 
     { 
      $rr=$r->id; 
      $data[]=array_merge($this->School_Model->getSubject($rr,$school_id)); 
     } 
     echo json_encode($data); 
    } 
    else 
    { 
     redirect('admin'); 
    } 
} 

は私のモデルであり、私のコントローラ機能ですアレイ。すべてをループする必要があります!

Biologyresult[1]中ですが、あなただけのあなたresult[0]

をループしている可能性このように、手動で操作を行います。

for (var i = 0; i < result[0].length; i++){ 
    listItems+= "<option value='" + result[0][i].id+ "'>" + result[0][i].subject_name + "</option>"; 
} 
for (var i = 0; i < result[1].length; i++){ 
    listItems+= "<option value='" + result[1][i].id+ "'>" + result[1][i].subject_name + "</option>"; 
} 

かを、一度に:

for (var j = 0; j < result.length; j++){ 
    // loops through all result arrays; 
    for (var i = 0; i < result[j].length; i++){ 
     // loops the `j`th result for entries; 
     listItems+= "<option value='" + result[j][i].id+ "'>" + result[j][i].subject_name + "</option>"; 
    } 
} 
+0

それは本当にありがとうございました。 :) – Rose

+0

お手伝いします;) –

関連する問題