2012-06-30 3 views
5

Есть ли файл в кодеIgniter, в котором я мог бы просто редактировать, чтобы я мог настраивать сообщения проверки формы?Как настроить ошибки проверки формы в кодеIgniter

enter image description here

Я просто хочу, чтобы разместить их в виде маркированного списка, чтобы потреблять меньше места.

Вот код, который я использую для вывода сообщений об ошибках:

<div class="alert <?php echo $alert['alert_type']; ?> min-form"> 
     <button type="button" class="close" data-dismiss="alert">x</button> 
     <h4><?php echo $alert['main_message']; ?></h4> 
     <?php echo $alert['sub_message']; ?> 
</div> 

В основном $alert['sub_message'] просто получать данные из validation_errors() функции из CodeIgniter, который выводит ошибки проверки из формы.

+0

Если не уже, я хотел бы предложить на стороне клиента уровень проверки, так что уровень CodeIgniter можно увидеть только в том случае, если они каким-то образом могут отправить форму. –

+0

Кроме того, я проконсультируюсь с документами CI: [Обратные вызовы: ваши собственные функции проверки] (http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks). –

+0

@JaredFarrish Спасибо. У меня уже есть проверка на стороне клиента с помощью liveValidation. Http://livevalidation.com/ –

ответ

8

Вы можете расширить класс form_validation для максимального контроля путем создания application/libraries/MY_form_validation.php, чтобы добавить дополнительные правила проверки - Я приложил пример ниже.

Плохая практика непосредственно редактировать системные библиотеки; CI предоставляет лучшие варианты (переопределения/настройки до MY_ классы, libraries, hooks и т. Д.). Это дает вам возможность легко модернизировать версии CI & сохраняет ваше приложение портативным/пользовательским кодом изолированным от основной структуры.

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

/** 
* CodeIgniter Form Validation Extension 
*/ 
class MY_Form_validation extends CI_Form_validation { 

    /** 
    * MY_Form_validation::valid_url 
    * @abstract Ensures a string is a valid URL 
    */ 
    function valid_url($url) { 
     if(preg_match("/^http(|s):\/{2}(.*)\.([a-z]){2,}(|\/)(.*)$/i", $url)) { 
      if(filter_var($url, FILTER_VALIDATE_URL)) return TRUE; 
     } 
     $this->CI->form_validation->set_message('valid_url', 'The %s must be a valid URL.'); 
     return FALSE; 
    } 

    /** 
    * MY_Form_validation::alpha_extra() 
    * @abstract Alpha-numeric with periods, underscores, spaces and dashes 
    */ 
    function alpha_extra($str) { 
     $this->CI->form_validation->set_message('alpha_extra', 'The %s may only contain alpha-numeric characters, spaces, periods, underscores & dashes.'); 
     return (! preg_match("/^([\.\s-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE; 
    } 

    /** 
    * MY_Form_validation::numeric_comma() 
    * @abstract Numeric and commas characters 
    */ 
    function numeric_comma($str) { 
     $this->CI->form_validation->set_message('numeric_comma', 'The %s may only contain numeric & comma characters.'); 
     return (! preg_match("/^(\d+,)*\d+$/", $str)) ? FALSE : TRUE; 
    } 

    /** 
    * MY_Form_validation::matches_pattern() 
    * @abstract Ensures a string matches a basic pattern 
    */ 
    function matches_pattern($str, $pattern) { 
     if (preg_match('/^' . $pattern . '$/', $str)) return TRUE; 
     $this->CI->form_validation->set_message('matches_pattern', 'The %s field does not match the required pattern.'); 
     return FALSE; 
    } 

} 

/* End of file MY_form_validation.php */ 
/* Location: ./{APPLICATION}/libraries/MY_form_validation.php */ 
0

Посмотрите на систему/язык/английский/form_validation_lang.php

Я считаю, что вы можете изменить его, или скопировать его приложения/язык/английский/form_validation_lang.php

+0

Расширение правильное, но редактирование 'system /' is no-no;) – sekati

+0

Мы можем иметь копию того же файла в 'application/language/english/form_validation_lang.php' (папка с языками Applicatoin) и делать любую настройку, мы хотеть – masterFly

-8

В для того чтобы проверить DevExpress элементов управления на странице с помощью JavaScript, используйте следующий код:

ASPxClientEdit.ValidateGroup(null); 

или

ASPxClientEdit.ValidateGroup('validationgroup'); 
2

Вы можете использовать <?php echo form_error('field name', '<div class="error">', '</div>'); ?> для отображения ошибок по отдельности.

Documentation

2

Вы можете изменить разделители из <div> в <li> с помощью функции set_error_delimiters CodeIgniter в:

$this->form_validation->set_error_delimiters('<li>', '</li>'); 

Вы должны сделать это сразу после загрузки класса Form Validation.

Это изменит способ отображения validation_errors()иform_error('field_name').Так что вам нужно будет добавить ul или ol следующим образом:

echo '<ul>' . validation_errors() . '</ul>'; 
1

же, как ответы выше, только если вы хотите с начальной загрузки:

<ul> 
<?php echo validation_errors('<li><span class="label label-danger">', '</span></li>'); ?> 
</ul> 
Смежные вопросы