仅当用户来自该页面时,如何在表单提交后将CodeIgniter中的URL重定向回上一页?

时间:2016-05-27 04:03:06

标签: javascript php jquery forms codeigniter

我已经尝试了几种方法将URL重定向回用户来自提交表单的页面,或者只是刷新表单页面以允许用户在用户直接访问时创建新条目。到目前为止,我一直没有成功。以下方法是我最接近但我不确定出了什么问题 -

用户点击此链接,将其带到表单所在的页面 -

<a target="_blank" class="sampleredirect" href="<?php echo base_url();?>sample/controller/add">Add User</a>

点击后,以下jQuery脚本将点击链接到一个函数 -

<script>
$('#sampleredirect').click(function(){
   $.ajax({
      type: "POST",
      url: "sample/controller/redfunc",
   }).done(function( msg ) {
      alert( "Data Saved: " + msg );
   });
});
</script> 

该函数获取启动点击的网址 -

public function redfunc(){
        $referred_from = $this->session->set_userdata('referred_from',current_url());
        return $referred_from;
    }

在表单逻辑所在的sample/controller/add内,提交后,我正在调用函数将用户重定向回以前的URL -

public function adduser(){
   //sample code
   $this->redfunc();
   redirect($referred_from, 'refresh');
}

这不起作用,我不断被重定向到默认页面,如果找不到URL,则显示该页面。在调用函数vardump($referred_from)后我$this->redfunc();时,我得到了NULL

我有点迷失在这里,并希望得到一些帮助。谢谢!

3 个答案:

答案 0 :(得分:0)

您需要在$referred_from功能中指定adduser

$this->redfunc();

你需要在那里分配一个变量。您想从result收到redfunc()吗?

所以,试试吧。

 public function adduser(){
       //sample code
       $referred_from = $this->redfunc();
       redirect($referred_from, 'refresh');
    }

或者你可以这样做

public function adduser(){
           //sample code
           redirect($this->redfunc(), 'refresh');
        }

对不起。坏英语

答案 1 :(得分:0)

$referred_from = $this->session->userdata('referred_from');

使用session->userdata获取已存储在会话中的current_url

在会话中设置网址

$this->session->set_userdata('referred_from',current_url());

从会话中检索

 $this->session->userdata('referred_from');

答案 2 :(得分:0)

$referred_from将不会返回任何内容。它只是设置一个会话。它不会返回会话值。请尝试下面的代码

<script>
$('#sampleredirect').click(function(){
   $.ajax({
      type: "POST",
      url: "sample/controller/redfunc",
      data: {current_url:<?=current_url()?>}
   }).done(function( msg ) {
       alert( "Data Saved: " + msg );
   });
});

public function redfunc(){
    $this->session->set_userdata('referred_from',$this->input->post('current_url');
}

public function adduser(){
   //sample code
   $referred_from = $this->session->referred_from;
   redirect($referred_from, 'refresh');
}