我有两个下拉菜单 - 组和子组。如果更改了组,那么我想使用新组的新项目列表更新子组。
以下是我的下拉列表代码:
<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。
答案 0 :(得分:0)
这里的问题在于调用获取子组下拉列表数据的函数,如下所示:
$.post(
"../product_controller/get_subgroup_json", // function call
因为视图是从product_controller调用的,所以此路由在任何其他函数调用中都是隐式的,因此调用应为:
$.post(
"../get_subgroup_json", // function call
我认为URI并没有在某处造成错误,这真的很奇怪,所以如果有人对此事有任何想法给我一些反馈,我会很感激。
再次感谢您的光临。
Ú