[英]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.