Comment rediriger l'URL dans CodeIgniter après la soumission du formulaire vers la page précédente uniquement lorsque l'utilisateur vient de cette page?


Anish Sana

J'ai essayé plusieurs façons de rediriger l'URL vers la page d'origine de l'utilisateur après avoir soumis un formulaire ou simplement d'actualiser la page du formulaire pour permettre à l'utilisateur de créer une nouvelle entrée si l'utilisateur y accédait directement. Jusqu'à présent, j'ai échoué. La méthode suivante est la plus proche que j'ai, mais je ne suis pas sûr de ce qui ne va pas -

L'utilisateur clique sur ce lien qui l'amène à la page où se trouve le formulaire -

<a target="_blank" class="sampleredirect" href="<?php echo base_url();?>sample/controller/add">Add User</a>

En cliquant, le script jQuery suivant lie le clic à une fonction -

<script>
$('#sampleredirect').click(function(){
   $.ajax({
      type: "POST",
      url: "sample/controller/redfunc",
   }).done(function( msg ) {
      alert( "Data Saved: " + msg );
   });
});
</script> 

La fonction obtient l'URL où le clic a été initié -

public function redfunc(){
        $referred_from = $this->session->set_userdata('referred_from',current_url());
        return $referred_from;
    }

À l'intérieur de l' sample/controller/addendroit où se trouve la logique du formulaire, après la soumission, j'appelle la fonction pour rediriger l'utilisateur vers l'URL précédente -

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

Cela ne fonctionne pas et je continue d'être redirigé vers la page par défaut qui s'affiche si une URL est introuvable. Quand je fais vardump($referred_from)après avoir appelé la fonction $this->redfunc();, je reçois NULL.

Je suis un peu perdu ici et j'aimerais beaucoup d'aide avec ça. Merci!

Vinie

$referred_fromne retournera rien. Il s'agit simplement de définir une session. Il ne renverra pas la valeur de session. Essayez ci-dessous le code

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

Articles connexes