2016-03-17 86 views
0

在codeigniter中通過id獲取數據我正在基於region_id獲取sub_regions名稱。 通過ajax做到這一點,所以加入區域和sub_region表後,我得到了谷歌Chrome控制檯的網絡中的結果。這意味着查詢和其他一切工作都很好。無法通過json

現在的問題是:

  1. 的數據不打印指定Div標籤
  2. 我得到的數據是所有sub_regions,它不是ID具體sub_region

    的JavaScript :

    <script> 
    $("li a").click(function() { 
    var x = $(this).attr('id'); // this is getting the id of the region from region links 
    if (x.length > 0) { 
        $.ajax({ 
        type: "POST", 
        data: "id=" + x, 
        url: "http://localhost/sitename/autocomplete/GetRegionName", 
        dataType: "json", 
        success: function(result) { 
         $.each(result, function(i, v) { 
    
          // For each record in the returned array 
          $('#result').append(v.name); // specified name as to display only the name of sub_region, not everything else 
          alert(v.name); 
         }); 
         } // end success 
        }); // end ajax 
    } // if condition ends 
    return false; 
    }); 
    </script> 
    

PHP:

<?php 
    // This is the controller 
    public function GetRegionName(){ 
      $keyword=$this->input->post('keyword'); 
      $data=$this->regioncomplete->GetRow($keyword);   
      echo json_encode($data); 
     } 
    // This is the Model where i have joined 2 tables "regions" and "subregions" and declared that region ID = Sub region ID 
      class Regioncomplete extends CI_Model{ 
      public function GetRow($keyword) { 
      $this->db->select('*'); 
      $this->db->from('regions'); 
      $this->db->join('sub_regions', 'regions.id = sub_regions.region_id');   
      $this->db->order_by('sub_regions.id', 'DESC'); 
      $this->db->like("sub_regions.name", $keyword); 
      return $this->db->get()->result_array(); 
     } 
    } 
    ?> 

我得到的結果網絡這樣

{id: "2", code: "CF", name: "California", country_id: "1", region_id: "2"} 
{id: "1", code: "ST", name: "Seattle", country_id: "1", region_id: "1"} 
+0

data:{'keyword':x}也許? –

+0

@歐津柏不知道那會是什麼...那會做什麼? –

+0

哦對不起〜我沒有看到你得到的結果,它看起來像你有一個PHP腳本的反應,我認爲你應該檢查你''在'v'使用typeof(),並且它也打印出(v.name) –

回答

0
success: function (result) { 
$.each(result, function(key, item) { 
    var get_result = "<p>"+item.name+"</p><br/>"; 
    $(get_result).appendTo('#result'); 
}); 
} 

OR

success: function (result) { 
for (var i = 0; i < data.result; i++) { 
var get_result = "<p>"+data[i].name+"</p> <br/>"; 
    $(get_result).appendTo('#result'); 
} 

}

檢查了這一點

+0

未捕獲的SyntaxError:意外的令牌>與em –

+0

$(get_result).appendTo('#result'); plz update&var get_result =「

」+ data [i] .name +「


」;這個 – channasmcs

+0

這個問題在歐津柏的幫助下解決了。他在評論中引導了我。 非常感謝你的寶貴時間,只是爲了幫助我:) –