2016-02-13 70 views
1

我使用Codeigniter和JQuery与AJAX方法来从我的数据库中的两个表中查询数据,并从表组中选择连接与表cat。如何在Jquery中查找其父项的所有子项?

这是表说明

表1:

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

表2: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({ 
    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都有一些不是gid的id号。你的名字如果不正确。 –

+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'中获取所有行。如果你想从'猫'表,所以,使用我发送给你的查询。如果你想分析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 我想在成功时检查它是否gid = 5我会找到fk_group_id的所有行,其中包含值5,并初始化为一个变量,并通过比较gid和fk_group_id找到另一个,直到循环结束。在完成后,我将apppend到一个div。 –

相关问题