如何使用codeigniter中的自动重定向下拉列表传递参数

时间:2012-01-17 05:26:17

标签: codeigniter redirect view drop-down-menu

大家好我试图制作一个国家/地区的下拉列表,当用户选择一个国家重定向到动态创建的特定页面时,我设法使用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;

}

1 个答案:

答案 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()