【问题标题】:Codeigniter 3 select form error not showing on form submitCodeigniter 3选择表单错误未显示在表单提交上
【发布时间】:2022-11-06 02:46:59
【问题描述】:

我正在关注有关制作 codeigniter 大学管理系统的 youtube 教程 但我被困在一个点上..当我尝试在 wamp 服务器上提交表单时 选择表单字段在表单提交时未显示所需错误

我已经检查了与数据库表匹配的表单输入的名称字段,但仍然在提交表单时没有填写任何字段 角色和性别选择字段错误不显示

这是我的代码 控制器

欢迎.php

defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller {


    /**
     * Index Page for this controller.
     *
     * Maps to the following URL
     *      http://example.com/index.php/welcome
     *  - or -
     *      http://example.com/index.php/welcome/index
     *  - or -
     * Since this controller is set as the default controller in
     * config/routes.php, it's displayed at http://example.com/
     *
     * So any other public methods not prefixed with an underscore will
     * map to /index.php/welcome/<method_name>
     * @see https://codeigniter.com/user_guide/general/urls.html
     */
    
    public function index()
    {   
        //$this->load->helper('url');
        $this->load->view('home');
        
    }
    
    public function adminRegister()
    {
        $this->load->model('queries');
        $roles = $this->queries->getRoles();
        // print_r($roles);
        // exit();
        $this->load->view('register',['roles'=>$roles]);
    }
    
    public function adminLogin()
    {
        echo 'Login';
    }
    public function adminSignup()
    {
        //echo 'Registered succesfully';
        
        $this->form_validation->set_rules('username','Username','required');
        $this->form_validation->set_rules('email','Email','required');
        $this->form_validation->set_rules('gender','Gender','required');
        $this->form_validation->set_rules('role_id','Role','required');
        $this->form_validation->set_rules('password','Password','required');
        $this->form_validation->set_rules('confpwd','Password Again','required');
        $this->form_validation->set_error_delimiters('<div class="text-danger">','</div>');
        
        if($this->form_validation->run()){
            echo 'validation passed';
        }else{
            //echo 'validation error';
            echo validation_errors();
        }
    }
    
    
}

和意见 注册.php

<?php include('inc/header.php');?>
  <div class="container mt-2">
   <?php  echo form_open('welcome/adminSignup',['class'=>'form-hoizontal']);?>
       <h3 class="text-center display-4">ADMIN REGISTER</h3>
       <hr/>
    <div class="row">
    
       <div class="col-md-6">
       
           <div class="form-group">
             <div class="row">
                <div class="col-md-3">
                  <label for="username" class="mt-2">User name:</label>
                </div>
                 <div class="col-md-9">
                   <!-- <input type="text" class="form-control" placeholder="User name" id="username"> -->
                   <?php 
                   $data = array(
                    'type'  => 'text',
                    'name'  => 'username',
                    'placeholder' => 'Enter Username',
                    'class' => 'form-control'
                       );
                   echo form_input($data); ?>
                </div>
              </div>
            </div>  
            
         </div>
       
       <div class="col-md-6">
          <?php echo form_error('username','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    <div class="row">
    
       <div class="col-md-6">
       
              <div class="form-group">
              <div class="row mt-3">
                <div class="col-md-3">
                   <label for="email" class="mt-2">Email address:</label>
                </div>
                 <div class="col-md-9">
                    <!-- <input type="email" class="form-control" placeholder="Enter email" id="email"> -->
                     <?php 
                   $data = array(
                    'type'  => 'email',
                    'name'  => 'email',
                    'placeholder' => 'Enter Email',
                    'class' => 'form-control'
                       );
                   echo form_input($data); ?>
                 </div>
               </div>
            </div>  
            
         </div>
       
       <div class="col-md-6">
          <?php echo form_error('email','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    
    <div class="row">
    
       <div class="col-md-6">
       
                 <div class="form-group">
                  <div class="row mt-3">
                    <div class="col-md-3">
                       <label for="gender" class="mt-2">Gender:</label>
                    </div>
                     <div class="col-md-9">
                        <!-- <input type="email" class="form-control" placeholder="Enter email" id="email"> -->
                         <select class="form-control" name="gender">
                            <option>Select</option>
                            <option>Male</option>
                            <option>Female</option>
                            
                        </select>
                    </div>
                  </div>
              </div>
            
         </div>
       
       <div class="col-md-6">
          <?php echo form_error('gender','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    <div class="row">
    
       <div class="col-md-6">
       
           <div class="form-group">
              <div class="row mt-3">
                <div class="col-md-3">
                   <label for="email" class="mt-2">Role:</label>
                </div>
                 <div class="col-md-9">
                    <select class="form-control" name="role_id">
                    
                        <option>Select</option>
                    <?php if(count($roles)) { ?>
                        <?php foreach ($roles as $role){?>
                        <option><?php echo $role->rolename;?></option>
                        <?php }
                        } ?>
                    </select>
                </div>
              </div>
          </div> 
            
         </div>
       
       <div class="col-md-6">
           <?php echo form_error('role_id','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    <div class="row">
    
       <div class="col-md-6">
       
            <div class="form-group">  
              <div class="row mt-3">
                <div class="col-md-3">
                  <label for="password" class="mt-2">Password:</label>
                </div>
                 <div class="col-md-9">
                   <!-- <input type="password" class="form-control" placeholder="Enter password" id="password"> -->
                    <?php 
                   $data = array(
                    'type'  => 'password',
                    'name'  => 'password',
                    'placeholder' => 'Enter Password',
                    'class' => 'form-control'
                       );
                   echo form_input($data); ?>
                </div>
              </div>
           </div>
            
         </div>
       
       <div class="col-md-6">
          <?php echo form_error('password','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    <div class="row">
    
       <div class="col-md-6">
       
            <div class="form-group">  
              <div class="row mt-3">
                <div class="col-md-3">
                  <label for="password" class="mt-2">Password Again:</label>
                </div>
                 <div class="col-md-9">
                   <!-- <input type="password" class="form-control" placeholder="Enter password" id="password"> -->
                    <?php 
                   $data = array(
                    'type'  => 'password',
                    'name'  => 'confpwd',
                    'placeholder' => 'Enter Password Again',
                    'class' => 'form-control'
                       );
                   echo form_input($data); ?>
                </div>
              </div>
           </div>
            
         </div>
       
       <div class="col-md-6">
           <?php echo form_error('confpwd','<div class="text-danger">','</div>');?>
       </div>
       
    </div><!--row-->
    
    <div class="row">
     <div class="col-md-6">
            <!--  <button type="submit" class="btn btn-dark float-right">Register</button> -->
           <div class="float-right">
             <?php echo form_submit('Register', 'Register',"class='btn btn-dark'"); ?>
           <?php echo anchor('welcome','GO BACK',['class'=>'btn  btn-warning']);?>
           </div>
       </div>
       
    </div>
    
    
    <?php echo form_close(); ?>
  </div>
<?php include('inc/footer.php');?>

这是截图

【问题讨论】:

标签: codeigniter-3


【解决方案1】:

错误未显示,因为您的选择框始终提交一个值。当您在选择框中选择一个选项并且没有指定value 属性时,&lt;option&gt; 标记之后的值将被发送到服务器。

要触发required 规则,您需要发送一个空字符串。 为此,您可以使用空的 &lt;option&gt; 标记作为占位符:

<select class="form-control" name="gender">
    <option></option>
    <option>Male</option>
    <option>Female</option>
</select>

或者将占位符的value 属性设置为空字符串:

<select class="form-control" name="gender">
    <option value="">Select</option>
    <option>Male</option>
    <option>Female</option>
</select>

【讨论】:

  • 是的,这正是..缺少选项值.... <select class="form-control" name="gender"> <option value="">Select</option> <option value="Male">Male </option> <option value="Female">女性</option> </select>
【解决方案2】:

试试下面的代码:

<select class="form-control" name="gender">
    <option></option>
    <option value="male">Male</option>
    <option valie="female">Female</option>
</select>

【讨论】:

    猜你喜欢
    • 2018-03-19
    • 1970-01-01
    • 2014-03-13
    • 2023-02-17
    • 2015-10-17
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2011-02-24
    相关资源
    最近更新 更多