如何在<select>
下拉onChange中访问此url index.php/backend/categories/get_categories/$id
我的意思是,如果我进入index.php/backend/categories/get_categories/1
,它将输出一个表,其中包含component id 1
下的所有类别。
我想要的,是一旦我从下拉列表中选择一个选项,我希望它提交并重定向到相同的url,但从<option val="$id">
有一个特定的ID ?
使用CodeIgniter FORM helper生成下拉列表:
<?php
echo form_open('backend/categories/get_categories');
$selectComponentData = array(0 => '-- '.lang('SELECT_COMPONENTS').' --');
$selectComponentJs = 'onChange="this.form.submit()" id="selectCatsByComponent"';
foreach($selectComponents as $option){
$selectComponentData[$option->id] = $option->name;
}
echo form_dropdown('selectCatsByComponent', $selectComponentData, 0, $selectComponentJs);
echo form_close();
?>
输出HTML为:
<form accept-charset="utf-8" method="post" action="http://127.0.0.1/backend/web/index.php/backend/categories/get_categories">
<select id="selectCatsByComponent" onchange="this.form.submit()" name="selectCatsByComponent">
<option selected="selected" value="0">-- Choose a component --</option>
<option value="1">E-commerce</option>
<option value="2">Content</option>
</select>
</form>
如何使之成为可能?
如果我没看错的话,你是在问这样的问题;
在控制器;public function get_categories()
{
if(isset($_POST) && !empty($_POST())
{
$id = $this->input->post('selectCatsByComponent');
// bla bla bla
$data['id'] = $id;
$this->load->view('whatever/whatever',$data);
}
else
{
//Your normal page before posting
}
}
现在您可以像这样访问视图中的id值
if(isset($id)) // if there is a $id loaded
{
// Your view accoring to $id
}
注意:当我写这段代码时,我没有测试环境。所以代码并不复杂,可能会有一些错误
You can use ajax with jquery onchange function, see the below example:
$("#bussiness").live('change',function(){
var bus_id=$(this).val();
$.ajax({
url : "<?php echo base_url(); ?>setting/set_session/"+bus_id,
success:function(res) {
document.getElementById('output').HTML = res;
}
});
});