Проверка Codeigniter ничего не показывает - PullRequest
0 голосов
/ 16 ноября 2018

Это мой контролер, куда отправляется моя форма.Я создал проверки здесь, но замечание работает

public function add_masteradmin()
        {
            $this->form_validation->set_error_delimiters("<div class='col-sm-5 col-form-label text-danger'>", '</div>');
            $this->form_validation->set_rules('full_name','Full Name','required|alpha|trim');
            $this->form_validation->set_rules('username','User Name','required|alpha|trim');
             if ($this->form_validation->run() == false ){
                 return redirect('Appconfig/master_admin');
             }
             else{
                 $post = $this->input->post();
                unset($post['submit']);

                $this->load->model('AppconfigModel');
                $this->AppconfigModel->insert_masteradmin($post);
                return redirect('Appconfig/master_admin');
             }
        }    

Это мой взгляд, где находится моя форма.В настоящее время я проверяю только свое полное имя

 <div class="col-md-10 mt-3 mb-4">
        <?php echo form_open('Appconfig/add_masteradmin', ['class'=>'form-inline form-color','id'=>'masterform']); ?>
       <div class="row">
         <div class="form-group col-sm-6">
           <label  class="col-sm-5 col-form-label">Full Name</label>
             <div class="col-sm-7">
                 <?php echo form_input(['name'=>'full_name' , 'class'=>'form-control']);  ?>
              </div>
              <?php echo form_error('full_name'); ?>
           </div>

           <div class="form-group col-sm-6">
           <label  class="col-sm-5 col-form-label">Username</label>
             <div class="col-sm-7">
                 <?php echo form_input(['name'=>'username' , 'class'=>'form-control']);  ?>
              </div>
           </div> 
  <?php echo form_submit(['name'=>'submit', 'value'=>'Submit','class'=>'btn btn-first d-block mx-auto mt-4', 'id'=>'sub'])   ?>

<?php echo form_close(); ?>

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вместо перенаправления на страницу, вы должны загрузить желаемое представление. Это самый разумный подход, который вы можете использовать в вашем случае:

замена

return redirect('Appconfig/master_admin');

от

$this->load->view('AppConfig/master_admin');

Тогда вам не нужно сохранять информацию в сеансе.

0 голосов
/ 16 ноября 2018

Во-первых, вам не нужно return перенаправление. Во-вторых, вы не можете получить прямой доступ к validation_errors() или form_error(), если вы перенаправляете (так как ошибки проверки применяются только к текущему отправленному экземпляру, а не к одному после перенаправления).

Если вы хотите получать ошибки проверки с помощью перенаправления , вы должны назначить их переменной сеанса и получить их в своем представлении после перенаправления. Или вы можете воспользоваться общим подходом, который описан в документации , и все проверки и обработки выполняются одним и тем же методом контроллера.

https://www.codeigniter.com/userguide3/libraries/form_validation.html#the-controller

В качестве альтернативы вы можете загрузить представление вместо перенаправления, однако этот подход изменяет URL, так что пользователь будет на add_masteradmin для всех одновременных представлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...