Intereting Posts
Создайте preg_match для проверки пароля, позволяющего (! @ # $%) полный пример gettext в php Как искать слэш (\) в MySQL? и почему escaping (\) не требуется для where (=), но для Like требуется? Javascript эквивалент списка PHP () Увеличение и уменьшение значения строки на 1 в MySQL Как объединить результаты из нескольких таблиц с разными столбцами? Как создать новую запись с фотографией, прикрепленной в WordPress с помощью XMLRPC? Как изменить URL-адрес перенаправления по умолчанию фильтра Laravel 5 Auth? Считайте строки перед добавлением следующего лимита оператора CodeIgniter? Являются ли PHP включением путей относительно файла или кода вызова? Взрывание массива в параметре цикла foreach Что делают операторы '& =' и '= &'? как установить короткий тег (<?) в php? Лучший способ создания абсолютного пути в PHP? (См. 3 метода, перечисленных внутри) Передача ассоциативных массивов PHP в XML и из них

Codeigniter 2 формируется на одной странице, проблема validation_errors

На одном из моих сайтов у меня есть 2 формы на одной странице, у меня проблема, с validation_errors(); в основном, что происходит, для одной из форм, которые я проверяю на наличие ошибок, и если есть какие-то ошибки, я делаю некоторый стиль, чтобы покрасить ярлыки, как другая форма просто отображает ошибки, используя echo validation_errors(); , Когда я отправляю форму, которая не отображает ошибки, просто стирание ошибок, ошибки проверки отображаются в форме. Как я могу остановить это?

Solutions Collecting From Web of "Codeigniter 2 формируется на одной странице, проблема validation_errors"

Ваш вопрос немного трудно читать, но если я правильно понимаю – у вас возникли проблемы с проверкой двух отдельных форм от одного контроллера или проблемами с ошибками из разных форм с использованием validation_errors() которые afaik печатает ВСЕ ошибки:

Перед запуском проверки проверьте наличие скрытого поля, поля, уникального для формы, или вы можете проверить значение конкретной кнопки отправки.

 <form> <input type="hidden" name="form1" value="whatever"> <input name="form1_email" /> <input type="submit" value="Submit Form 1" /> </form> 

Затем вы можете использовать любой из этих методов, чтобы проверить, какая форма была отправлена ​​(в этом примере проверяется, была ли отправлена ​​«form1»):

 <?php // Choose one: if ($this->input->post('form1')): // check the hidden input if ($this->input->post('form1_email')): // OR check a unique value if ($this->input->post('submit') == 'Submit Form 1'): // OR check the submit button value if ($this->form_validation->run()): // process form else: // Create a variable with errors assigned to form 1 // Make sure to pass this to your view $data['form1_errors'] = validation_errors(); endif; endif; // Do same for form 2 

Тогда, на ваш взгляд, вместо использования validation_errors() вы должны использовать:

 if (isset($form1_errors)) echo $form1_errors; // Print only form1's errors 

Если это не поможет, дайте мне знать и уточните свой вопрос, разместив свой код.

То, что я сделал, разделило обе формы. Представление будет похоже на

  <?php echo validation_errors(); ?> <?php echo form_open('form1'); ?> <form id="form1" action="some_action"> //Inputs </form> <?php echo form_open('form2'); ?> <form id="form2" action="other_action"> //Inputs </form> 

Теперь в контроллере вы можете иметь две разные функции для каждой проверки:

  //Controller function some_action(){ //validate form and code } function other_action(){ //validate form2 and code } 

Теперь все сообщения проверки будут отображаться в одном месте, но будут отображаться только сообщения каждой формы. надеюсь, это поможет