Intereting Posts
Отправка изображения из программы C # на веб-страницу PHP для отображения MySQL исправляет пробелы автоинкремента в двух таблицах Использование jQuery для синтаксического анализа XML, возвращаемого из PHP-скрипта (API imgur.com) TYPO3: добавление пользовательских функций набора в контроллер расширения Показать Самые популярные теги продукта в виджетах виджета WooCommerce Проблемы с приложением PHP mail () Результат автозаполнения JQuery PHP, что лучше всего подходит для использования XML? Нужно создавать и анализировать ответы XML Zend Framework 2 – Создание простой формы с помощью валидаторов Yii 2 dropDownList – значение по умолчанию не выбрано Ожидаемый код ответа 250, но получил код "", с сообщением "" Ошибки при установке php-композитора на окнах Вызов неопределенного метода PDO :: execute () Проблема маршрутизации с Laravel, AngularJS и CORS Как выполнить команды SSH через PHP

конфликты с несколькими формами: codeigniter conflict

Возможный дубликат:
Codeigniter 2 формируется на одной странице, проблема validation_errors

У меня есть две формы на моей странице. Мне нужно проверить их 1 за раз, но я думаю, что есть конфликт. Вот посмотрите:

введите описание изображения здесь

когда я отправляю любой из форм, оба они показывают одно и то же сообщение об ошибке

Я использую validation_errors() для отображения сообщений. Как я могу проверить форму 1 за раз?

Вот код

 public function update_user_info(){ $this->form_validation->set_rules("firstname","First Name","required"); $this->form_validation->set_rules("lastname","Last Name","required"); $this->form_validation->set_rules("middlename","Middle Name","required"); if($this->form_validation->run()===false){ //wrong } else { //correct } } 

Я просто столкнулся с проблемой. Мое решение:

1. Сначала установите первое имя кнопки отправки = 'update_info'

2. Последовательно установите вторую кнопку кнопки отправки = 'change_password'

3.Найдите изменения в update_user_info ().

 public function update_user_info(){ if (isset ($_POST['update_info'])) { $this->form_validation->set_rules("firstname","First Name","required"); $this->form_validation->set_rules("lastname","Last Name","required"); $this->form_validation->set_rules("middlename","Middle Name","required"); if($this->form_validation->run()===false){ //wrong } else { //correct } } else if (isset ($_POST['change_password'])){ form_validation of your change password } 

Я думаю, что это самый простой способ исправить вашу проблему.

Удачи.

Вы можете сделать один скрытый ввод для каждой формы

 First Form: <input type="hidden" name="form" value="form1" /> Second Form: <input type="hidden" name="form" value="form2" /> 

В вашем контроллере вы можете установить множество правил для каждой формы

 $config['form1'] = array( array( 'field' => 'username', 'label' => 'Username', 'rules' => 'required' ), array( 'field' => 'password', 'label' => 'Password', 'rules' => 'required' ), ); $config['form2'] = array( array( 'field' => 'email', 'label' => 'Email', 'rules' => 'required' ), ); Now check which hidden field posted $form = $this->input->post('form') Now you can set rules as below $this->form_validation->set_rules($config[$form]); if ($this->form_validation->run()): // process form else: $data[$form.'_errors'] = validation_errors(); endif; 

Теперь в вашем файле просмотра

 if (isset($form1_errors)) echo $form1_errors; if (isset($form2_errors)) echo $form2_errors; 

Если у вас есть разные ошибки проверки для каждой формы, вы можете проверить вывод из validation_errors .

Насколько я вижу, validation_errors позволяет вам изменять разделители ошибок и ничего больше. Тем не менее, вы можете попробовать показать отдельные ошибки формы следующим образом: <?php echo form_error('username'); ?> <?php echo form_error('username'); ?>