2016-05-18 4 views
1

У меня есть форма и на странице отправки. Когда я обновляю страницу, она запрашивает повторную отправку данных. Чтобы этого избежать, я обнаружил, что мне нужно реализовать шаблон PRG. Может ли кто-нибудь помочь мне реализовать то же самое в CodeIgniter?Как реализовать Post-Redirect-Получить шаблон в CodeIgniter

+0

Нужно ли вам также использовать codeigniter form_validation? – DFriend

+0

Нет, я не нуждаюсь в проверке –

+0

Тогда это намного проще. Дайте мне немного ответить. – DFriend

ответ

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 : ""; 

Это эхо последний введенный пароль, если он существует. Он не будет отображаться на странице обновления или вернуться из браузера.

 Смежные вопросы

  • Нет связанных вопросов^_^