2016-02-13 3 views
1

Я использую Codeigniter и Jquery с методом AJAX для запроса данных из двух таблиц в моей базе данных с помощью select join from table group with table cat.Как найти всех детей для своего родителя в JQuery?

Это описание таблицы

Table1: кошка

======c_id======fk_group_id====cat_name=== 
======1========1==============cat1======= 
======2========1==============cat2======= 
======3========1==============cat3======= 
======4========1==============cat4======= 

Table2: cat_group.

======gid=======gname====gstat============ 
======1========1=========1============== 
======2========1=========1============== 
======3========1=========1============== 
======4========1=========1============== 

Вот мой Модель:

Эта функция SELCT из таблицы cat_group присоединиться к таблице Кошка на GID = cat.fk_group_id.

public function cat(){ 

    $this->db->select('cat_group.*, cat.*'); 
    $this->db->from('cat_group'); 
    $this->db->join('cat', 'cat.fk_group_id = cat_group.gid','all')->where('cat_group.gstatus = 1'); 
    return $this->db->get()->result(); 
} 

Моя функция в контроллера: я называю метод кошки от модели и эхо-данные в json_encode на клиентских браузерах

public function select_cat_by_group(){ 
    $this->load->model("main/slide_cat_m"); 
    $val = $this->slide_cat_m->cat(); 
    if(!$val){ 
     return false; 
    }else{ 
     echo json_encode($val); 
    } 
} 

Jquery Ajax

$.ajax({ 
    method: "GET", 
    url: '<?PHP echo base_url('main/select_cat_by_group');?>', 
    dataType: "Json", 
    success: function (data) { 
      $.each(data, function (i, val) { 
       if(val.fk_group_id = gid){ 
        //I want to select all the rows in table cat where fk_groupd_id = gid of table cat_group but I can't 
       } 
      }); 
    } 
}) 

Мои Json

[{"gid":"1","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"1","fk_group_id":"1","cat_name":"fuck1","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"5","gtype":"2","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"5","fk_group_id":"5","cat_name":"cat_name","c_status":"1","type_for_group":"2","img":"9.jpg","src":"asset\/img\/main"},{"gid":"5","gtype":"2","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"6","fk_group_id":"5","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"5","gtype":"2","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"7","fk_group_id":"5","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"5","gtype":"2","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"8","fk_group_id":"5","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"9","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"10","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"15","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"16","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"17","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"18","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"6","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"1","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"19","fk_group_id":"6","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"20","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"21","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"22","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"23","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"24","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"25","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"},{"gid":"7","gtype":"1","g_name":"a","gstatus":"1","gad_stat":"0","gsrc":"asset\/img\/cat\/","gimg":"cat_ads.jpg","c_id":"26","fk_group_id":"7","cat_name":"cat_name","c_status":"1","type_for_group":"1","img":"9.jpg","src":"asset\/img\/main"}] 
+0

Почему бы не просто передать 'gid' также' php'? и обрабатывать его 'where()'? – roullie

+0

у всех ваших fk_group_id есть номер id, а не gid. если вы ошиблись. –

+0

@ilanhasanov, Как ответил мой json, я получил данные из БД, и я хочу использовать javascript для проверки fk_group_id и gid, и если fk_groupd_id = gid перечислит все эти элементы и добавит какой-нибудь элемент html –

ответ

1

Вы сделали небольшую ошибку в модели. Однако это должно быть:

$this->db->select('cat_group.*, cat.*'); 
    $this->db->from('cat'); 
    $this->db->join('cat_group', 'cat.fk_group_id = cat_group.gid','all')->where('cat_group.gstatus = 1'); 
    return $this->db->get()->result(); 

Она должна возвращать все строки catwhere fk_groupd_id = gid. Теперь вы должны проанализировать результат json.

UPDATE:

$.ajax({ 
    type: "POST", 
    url: 'YOUR_URL', 
    dataType:'JSON', 
    success: function(data) { 

      $.each(data, function(index, element) { 
      //console.log(index); 
      //alert(element.c_id);    
      console.log(element.c_id); 
      console.log(element.cat_name); // here console.log() is used to debug the data. 
     }); 

     } 
}) 

Это до вас сейчас, как вы будете отображать данные в формате HTML. Вы можете проверить этот пример как разобрать json-объект и отобразить его в DOM: how to parse json data with jquery/javascript?

+0

@StreedCoder, It это работа, но я хочу отфильтровать все дочерние элементы для родителя в функции успеха Ajax. –

+0

Я не понимаю, понимаю вашу логику. Вы хотите получить все строки из таблицы 'cat' или' cat_group'. Если вы хотите из таблицы 'cat', используйте запрос, который я вам отправил. Если вы хотите проанализировать данные json, я обновляю ответ с успехом ajax. Только теперь вам нужно использовать логику, как вы хотите отображать данные. – StreetCoder

+0

Я могу понять, как получить данные из БД и получить доступ в ajax или передать html Но я не могу понять, как найти условие, как ниже вопрос http: // stackoverflow.com/questions/35384233/how-to-compare-two-value-and-append-it-if-match-any-value-in-jquery-loop Я хочу проверить его в Success if gid = 5 Я буду найдите все строки fk_group_id, которые содержат значение 5 и начальную переменную, и tr, чтобы найти другую, сравните gid с fk_group_id до окончания цикла. После завершения я буду использовать div. –

Смежные вопросы