繁体   English   中英

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

[英]How to redirect URL in CodeIgniter after form submission back to the previous page only when the user comes from that page?

我尝试了几种方法来将 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> 

该函数获取发起点击的 URL -

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,则显示该页面。 当我在调用函数$this->redfunc();后执行vardump($referred_from) $this->redfunc(); ,我得到NULL

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

$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');
}

您需要在adduser函数中分配$referred_from

$this->redfunc();

您需要在那里分配一个变量。 因为您想从redfunc()接收result ,对吗?

所以,试试吧。

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

或者你可以这样做

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

对不起。 烂英文

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

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

在会话中设置 url

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

从会话中检索

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM