Ich habe ein Formular und in der Eingabe-Seite. Wenn ich die Seite aktualisiere, werden Daten erneut gesendet. Um das zu vermeiden, habe ich festgestellt, dass ich das PRG-Muster implementieren muss. Kann mir bitte jemand helfen, das gleiche in CodeIgniter zu implementieren?So implementieren Sie Post-Redirect-Get-Muster in CodeIgniter
1
A
Antwort
1
Um Daten von der Verarbeitungsfunktion zurück an die Anzeigefunktion zu übergeben, müssen Sie Sitzungen verwenden. Das Beispiel geht von Codeigniter v3.0.0 oder höher aus. Wenn Sie eine frühere Version verwenden, müssen Sie die Einstellung ändern, die Sitzungsdaten abrufen und zurücksetzen.
Hier ist eine sehr einfache Steuerung
class TestPRG extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->library('session');
}
public function index()
{
$data['name'] = $this->session->name;
$data['pw'] = $this->session->pw;
$this->load->view('test_form_v', $data);
unset($_SESSION['name'], $_SESSION['pw']);
}
public function process_form()
{
$_SESSION['name'] = $this->input->post('username');
$_SESSION['pw'] = $this->input->post('password');
redirect('testprg', 'location', 303);
}
}
Die Ansicht Datei
<?php
echo form_open('testprg/process_form');
echo form_input('username', isset($name) ? $name : NULL);
echo form_password('password', "");
echo form_submit('Submit', 'Submit');
echo form_close();
echo isset($pw) ? $pw : "";
Dies wird die zuletzt eingegebene Passwort Echo, wenn es vorhanden ist. Es wird nicht bei einer Seitenaktualisierung vorhanden sein oder vom Browser zurückgehen.
Sie benötigen/wollen auch codeigniter form_validation benutzen? – DFriend
Nein, ich brauche keine Validierung –
Dann ist es viel einfacher. Gib mir ein paar zu beantworten. – DFriend