Проверка пользовательской формы в codeigniter не работает - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть страница с проверками.

$this->form_validation->set_rules('category', 'categorie', 'required_fr');
$this->form_validation->set_rules('description', 'omschrijving', 'required');

Мой файл form_validation_lang.php выглядит так:

$lang['required'] = 'Error message 1';
$lang['required_fr'] = 'Error message 2';

Требуется стандартное значение, я добавил required_fr. Если обе проверки не пройдены, я получаю только «Сообщение об ошибке 1». Вторая проверка (required_fr) не работает.

Если я отредактирую 'обязательное' значение в файле form_validation_lang.php, сообщение об ошибке также изменится, если проверка формы не удалась. Но значение 'required_fr', очевидно, не может быть загружено.

Я тоже пытался поставить

$this->form_validation->set_message('required_fr', 'Error Message 2');

по моему мнению, но это тоже не работает. Решение, вероятно, довольно простое, но я думаю, что я что-то упускаю.

Важные части моей страницы выглядят так

<?php echo validation_errors(); ?>

        <div class="form-group">
            <label for="ticketCategory" class="col-sm-2 control-label"><?php echo ($this->session->userdata('franstalig') == 0) ? "Categorie" : "Catégorie" ?></label>
            <div class="col-sm-6">
                <select class="form-control" id="ticketCategory" name="category">
                    <option value="">Gelieve een categorie te selecteren</option>
                    <?php if (isset($categories) && !empty($categories)): ?>
                        <?php foreach ($categories as $category): ?>
                            <option value="<?php echo $category['id'] ?>" <?php echo set_select('category', $category['id']); ?>><?php echo $category['description']; ?></option>
                        <?php endforeach; ?>
                    <?php endif; ?>
                </select>
            </div>
        </div>
        <div class="form-group">
            <label for="ticketDesc" class="col-sm-2 control-label">Omschrijving</label>
            <div class="col-sm-6">
                <textarea name="description" id="ticketDesc" class="form-control" rows="16"><?php echo set_value('description'); ?></textarea>
            </div>
        </div>

Может ли быть что-то не так с функцией validation_errors ()?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Я решил проблему.Я добавил

public function required_fr($str) 
{
    if ( ! is_array($str))
    {
        return (trim($str) == '') ? FALSE : TRUE;
    }
    else
    {
        return ( ! empty($str));
    }
} 

в свой класс и позвонил $this->form_validation->set_rules('category', 'categorie', 'callback_required_fr');.Это добилось цели.

0 голосов
/ 25 апреля 2018

Альтернативный способ.

Попробуйте изменить:

$this->form_validation->set_rules('category', 'categorie', 'required_fr');

Кому:

$this->lang->load('form_validation_lang');
$this->form_validation->set_rules('category', 'categorie', 'required', array('required' => $this->lang->line('required_fr')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...