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