Проверка формы в CodeIgniter? - PullRequest
0 голосов
/ 08 февраля 2012

Я использую проверку формы CodeIgniter, она работает нормально, но когда проверка формы не удается, она не отображает ошибки проверки, используя <?php echo validation_errors();?> Я использую

function insertProduct(){
    $this->load->library('form_validation');
    $this->form_validation->set_rules('pname','ProductName','trimirequired');
    if($this->form_validation->run()){
        $this->addProduct();
    }
    else{
        $this->load->model('inventory/stock');
    }

Ответы [ 4 ]

0 голосов
/ 04 ноября 2015

Мы можем изменить строку, содержащую следующий код:

$this->form_validation->set_rules('pname','ProductName','trimirequired');

до:

$this->form_validation->set_rules('pname','ProductName','trim|required');
if($this->form_validation->run($this) == false)
{
   $this->addProduct();
}
0 голосов
/ 08 февраля 2012

Вы должны сообщить методу в вашем контроллере, чтобы он отображал представление об успехе / неудаче проверки формы.

Если вы измените метод insertProduct на следующий, он 'должен'решить вашу проблему.

function insertProduct(){
    $this->load->library('form_validation');
    $this->form_validation->set_rules('pname','ProductName','trimirequired');
    if($this->form_validation->run()){
        $this->addProduct();
        $this->load->view('{name_of_your_view}');
    } else{
        $this->load->model('inventory/stock');
        $this->load->view('{name_of_your_view}');
    }
}

Где' name_of_your_view '- это представление, в которое вы поместили код validation_errors () .

0 голосов
/ 08 февраля 2012

Этот пример со страниц учебника CodeIgniter объясняет, как проверять отправленные данные для отображения ошибок проверки в заголовке формы, как вы могли ожидать:

http://codeigniter.com/user_guide/tutorial/create_news_items.html

Пример кода для функции создания выглядит следующим образом:

public function create()
{
    $this->load->helper('form');
    $this->load->library('form_validation');

    $data['title'] = 'Create a news item';

    $this->form_validation->set_rules('title', 'Title', 'required');
    $this->form_validation->set_rules('text', 'text', 'required');

    if ($this->form_validation->run() === FALSE)
    {
        $this->load->view('templates/header', $data);   
        $this->load->view('news/create');
        $this->load->view('templates/footer');

    }
    else
    {
        $this->news_model->set_news();
        $this->load->view('news/success');
    }
}

Как уже говорили другие, вам нужно добавить представление для обработки успеха и вернуть их в форму для отображения ошибок при сбое.

0 голосов
/ 08 февраля 2012

По вашему мнению, у вас должно быть что-то вроде (этот пример показывает ошибки индивидуально);

<?php echo form_error('p_name'); ?>
<label for="p_name">Product Name</label>
<input type="text" id="p_name" name="p_name" value="<?php echo set_value('p_name'); ?>" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...