У меня есть форма и на странице отправки. Когда я обновляю страницу, она запрашивает повторную отправку данных. Чтобы этого избежать, я обнаружил, что мне нужно реализовать шаблон PRG. Может ли кто-нибудь помочь мне реализовать то же самое в CodeIgniter?Как реализовать Post-Redirect-Получить шаблон в CodeIgniter
1
A
ответ
1
Для передачи данных из функции обработки обратно в функцию просмотра вам понадобятся сеансы. В примере предполагается, что Codeigniter v3.0.0 или выше. Если вы используете какую-либо более раннюю версию, вам придется изменить настройку, получение и сброс данных сеанса.
Вот очень простой контроллер
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);
}
}
Вид файла
<?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 : "";
Это эхо последний введенный пароль, если он существует. Он не будет отображаться на странице обновления или вернуться из браузера.
Нужно ли вам также использовать codeigniter form_validation? – DFriend
Нет, я не нуждаюсь в проверке –
Тогда это намного проще. Дайте мне немного ответить. – DFriend