CodeIgniter - 为什么JQuery不会更新form_dropdown

时间:2014-09-16 12:24:12

标签: jquery codeigniter

我有两个下拉菜单 - 组和子组。如果更改了组,那么我想使用新组的新项目列表更新子组。

以下是我的下拉列表代码:

<div  id="inp_p_group"class="control-group">
  <label class="control-label">Select Group:</label>
   <div class="controls">
    <?php
    $p_groups = array();
    $p_groups['-1'] = 'no selection';
    foreach ($groups->result() as $g_row){
        $p_groups[$g_row->tbl_group_id] = $g_row->vch_group_name;
    }
    echo form_dropdown('p_groups', $p_groups, $row->fk_group_id, 'style="width: 140px; font-size: 13px" id="p_groups"'); 
    ?>
   </div>
 </div>       

 <div  id="inp_p_groupsub"class="control-group">
   <label class="control-label">Select Sub Group:</label>
   <div class="controls">
   <?php
     $p_groupsub = array();
     $p_groupsub['-1'] = 'no selection';
     foreach ($sub_groups->result() as $s_row){
        $p_groupsub[$s_row->tbl_group_sub_id] = $s_row->vch_sub_name;
     }
     echo form_dropdown('p_groupsub', $p_groupsub, $row->fk_group_sub_id, 'style="width: 140px; font-size: 13px" id="p_groupsub"'); 
   ?>
   </div>
 </div>       

这是我的JScript代码

$('#p_groups').change(function() {
    var select = document.getElementById("p_groups");
    var myvalue= $.trim(select.options[select.selectedIndex].innerHTML);
    // now populate the Sub Group selector with the children of the selected Group
    group_id = select.options[select.selectedIndex].value;
    // make call to function to get the sub-group data
    $.post(
        "../product_controller/get_subgroup_json",// function call
        {'gid' : group_id},                         // function data
        function (retval) {                         // callback function
            //var sub_list = document.getElementById("p_groupsub");
            var sub_list = $('#p_groupsub')[0];
            sub_list.options.length = 0; // this removes existing options
            $.each(retval, function(index, element) {
                // create an Option object
                var opt = document.createElement("option");
                // Add an Option object to Drop Down/List Box
                sub_list.options.add(opt);
                // Assign text and value to Option object
                opt.value = index;
                opt.text = element;
            });
        }, // end callback
        "json"
        ); // end post
}); // end p_groups-change function

我不能为我的生活弄清楚为什么这不起作用,任何帮助都非常感激。

-G。

UPDATE 我一直在寻找这个,我在网站的另一部分使用相同的JS来做同样的事情。在这两个地方我都称之为函数

 "../product_controller/get_subgroup_json"

返回子组列表。

Wehn我从POST标题的代码中调用它看起来像这样

 ../index.php/product_controller/get_subgroup_json?gid=12

但是当我从无效的代码中调用它时,POST看起来像:

../index.php/product_controller/product_controller/get_subgroup_json?gid=12

JS在两种情况下都是相同的,所以我不知道额外的产品控制器/&#39;即将来临。

-G。

1 个答案:

答案 0 :(得分:0)

这里的问题在于调用获取子组下拉列表数据的函数,如下所示:

 $.post(
    "../product_controller/get_subgroup_json",  // function call

因为视图是从product_controller调用的,所以此路由在任何其他函数调用中都是隐式的,因此调用应为:

 $.post(
    "../get_subgroup_json",  // function call

我认为URI并没有在某处造成错误,这真的很奇怪,所以如果有人对此事有任何想法给我一些反馈,我会很感激。

再次感谢您的光临。

Ú