6 Stimmen

Wie sendet man variable Daten bei der Weiterleitung zur vorherigen Seite?

Ich verwende die folgenden Codes, um meinen Benutzer auf die vorherige Seite umzuleiten, nachdem eine bestimmte Aufgabe erledigt ist.

        if (isset($_SERVER['HTTP_REFERER']))
         {
         $this->session->set_userdata('previous_page', $_SERVER['HTTP_REFERER']);
         }
         else
         {
         $this->session->set_userdata('previous_page', base_url());
         }

Den obigen Code verwende ich in einem Controller und den folgenden Code in einem anderen Controller

    .... some other stuffs... I am updating database values here....

        $this->db->where('t_expenseid', $t_expenseid);
        query=$this->db->update('teacherexpense', $data); 

        redirect($this->session->userdata('previous_page'));

Der obige Code funktioniert gut, aber das Problem, dem ich gegenüberstehe, ist, dass ich eine Erfolgsmeldung mit der Weiterleitung senden möchte, so dass, wenn die vorherige Seite lädt eine Erfolgsmeldung erscheint (ich habe bereits Jquery für das). Und dafür habe ich den folgenden Code über die Umleitung hinzugefügt, aber ich weiß nicht, wie die $data oder die Nachricht zusammen mit der Umleitung zu senden. Und wenn ich in der Lage bin, es zu senden, wie man den Wert in den Controller der vorherigen Seite abrufen.

 $data['msg']='Information Has been Successfully Inserted'; 

Könnten Sie mir bitte sagen, wie ich sie abschicken und dann wieder abrufen kann?

Danke :)

10voto

Vijaysinh Parmar Punkte 1321

Sie können set_flashdata von CI verwenden. Sie können nur einmal verwenden, dass die Nachricht nach der Aktualisierung der Seite leer wird.

  $this->session->set_flashdata('message', 'Authentication failed');

  redirect(site_url('message/index/'), 'refresh'); 

Und auf dieser Seite können Sie diese Nachricht sehen, indem Sie

$message = $this->session->flashdata('message').

2voto

birderic Punkte 3715

Erwägen Sie die Verwendung von flashdata die im Allgemeinen in Situationen verwendet wird, in denen Sie zu einer Seite umleiten und eine Nachricht anzeigen möchten. Beachten Sie, dass die Nachricht nur einmal angezeigt wird. Wenn der Benutzer die Seite aktualisiert, verschwindet die Meldung.

So verwenden Sie es:

$this->db->where('t_expenseid', $t_expenseid);
query = $this->db->update('teacherexpense', $data);

// set flashdata
$this->session->set_flashdata('message', 'Information Has been Successfully Inserted');

redirect($this->session->userdata('previous_page'));

Dann könnten Sie auf der "vorherigen Seite" nach einer Nachricht suchen und sie anzeigen, wenn sie vorhanden ist:

// get flashdata
$message = $this->session->flashdata('message');

if ($message) {
    // pass message to view, etc...
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X