我已经尝试了几种方法将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
。
我有点迷失在这里,并希望得到一些帮助。谢谢!
答案 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');
}