大家好我试图制作一个国家/地区的下拉列表,当用户选择一个国家重定向到动态创建的特定页面时,我设法使用javascript使重定向工作,但我需要采取更多参数控制器内的方法就像县“id”一样暴露在uri上,所以可能使用$ _post也不应该使用按钮提交。 这是我的代码
查看页面
<?php echo form_open('site/country');
$options = array();
$js = 'id="country" onChange="window.location.href= this.form.CTRY.options[this.form.CTRY.selectedIndex].value"';
$options['#'] = "(please select a country)" ;
foreach ($list as $row):
$value= site_url()."/site/country/".url_title($row->name);
$options[$value] = $row->name ;
endforeach;
echo form_dropdown('CTRY', $options,'',$js);
//$test =array ('number' => 10)
//echo form_hidden($test);
echo form_close();?>
这是我在控制器中的方法
function country($data)
{
echo 'this is taking you to county= '.$data;
}
答案 0 :(得分:0)
为什么不做@Joseph Silber所描述的事情。
使用jQuery在更改下拉列表时执行ajax请求,还管理重定向?
喜欢的东西;
$('#my-drop-down').change(function() {
$.ajax({
url: '/site/country',
type: 'post',
data: $("#my-form").serialize(),
success: function( response.redirect ) {
window.location.href = response.redirect;
},
error: function( response ) {
alert('Oops');
}
});
});
通过使用serilaize(),您可以发布表单中的所有数据,或者只添加您想要传递的参数。
E.g data: 'id='+$('#id').val()+'&country='+$('#country').val()