簡體   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