【问题标题】:how to pass parameters using auto redirect droplist in codeigniter如何在codeigniter中使用自动重定向下拉列表传递参数
【发布时间】:2012-01-17 16:37:12
【问题描述】:

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

}

【问题讨论】:

  • 您不能使用window.location.href 发布。为此,您需要 AJAX。我可以建议使用jQuery吗?

标签: codeigniter redirect view drop-down-menu


【解决方案1】:

你为什么不做类似@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(),你可以从表单中发布所有数据,或者只是添加你想要传递的参数。

例如data: 'id='+$('#id').val()+'&amp;country='+$('#country').val()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多