Codeigniter - обрабатывать отправку формы от другого действия контроллера - PullRequest
1 голос
/ 05 мая 2011

Какой лучший способ справиться со следующей ситуацией в codeigniter:

Домашний контроллер имеет действие индекса и действие отправки.

Действие отправки используется для отправки формы.Однако я хочу загрузить страницу через контроллер индекса - в том числе после отправки формы, т. Е. С данными об ошибках формы, чтобы заполнить входные данные формы при ошибке и т. Д.загрузка главной страницы и отправка формы.

Ответы [ 2 ]

3 голосов
/ 05 мая 2011

Если вы redirect(), вы не сможете использовать set_value() для повторного заполнения полей формы.

Что проще всего, так это то, что ваш контроллер индекса обрабатывает поведение загрузки по умолчанию и отправку.

function index()
{
    if($this->input->post('foo'))
    { // something was POSTed
        $this->load->library('form_validation');
        //validation rules
    } else
    { // normal view
        //
    }

    $this->load->view('home');
}

В качестве альтернативы, вы можете просто настроить контроллер index и submit, чтобы они указывали на один и тот же вид, который определяет, установлены ли значения validation_errors(), и соответственно заполняет поля формы.

Третий вариант (хакерский): вы можете использовать flashdata для хранения ошибок при отправке и отправленных значений формы при перенаправлении обратно в индекс. Примерно так будет работать:

$this->session->set_flashdata('errors', $validation_errors());
0 голосов
/ 05 мая 2011

Просто укажите свою форму при отправке действия:

<form method="post" action="/home/submit">

Затем используйте действие submit, чтобы проверить введенные данные, прежде чем перенаправить обратно к действию index.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...