表格下拉列表未在Codeigniter中注册

时间:2016-03-22 22:39:54

标签: database codeigniter validation

我创建了一个具有下拉字段的注册表单,但我无法将其链接到数据库以注册选择。我打开了表单验证,但它一直说没有选择任何值。

我的其他输入工作正常,因为他们是用户输入的。但是,此下拉列表中的值不会注册为任何值。任何帮助将不胜感激。

谢谢!

查看

<div class = "form-group">

 <?php echo form_label('Mobile Carrier'); ?><br/><!--Form Label-->

 <?php

    $data = array(

     'None'          => 'None',
     'att'          => 'AT&T',
     'verizon'      => 'Verizon',
     'sprint'       => 'Sprint',
     'tmobile'      => 'T-Mobile'
     );
 ?>
 <?php echo form_dropdown('Mobile Carrier', $data, 'None'); ?>

控制器

public function register(){
        $this->form_validation->set_rules('mobile_carrier', 'Mobile Carrier', 'required'); }

用户模型

public function create_user(){

    $data = array(

        'first_name'        => $this->input->post('first_name'),
        'last_name'         => $this->input->post('last_name'),
        'email'             => $this->input->post('email'),
        'phone_number'      => $this->input->post('phone_number'),
        'mobile_carrier'    => $this->input->post('mobile_carrier'),
        'username'          => $this->input->post('username'),
        'password'          => $encrypted_pass
    );
    $insert_data = $this->db->insert('users', $data);
    return $insert_data;
}

1 个答案:

答案 0 :(得分:1)

您在创建下拉列表时分配了错误的name属性:

<?php echo form_dropdown('Mobile Carrier', $data, 'None'); ?> 

name属性必须与模型中的$this->input->post('mobile_carrier')匹配。所以正确使用将是:

<?php echo form_dropdown('mobile_carrier', $data, 'None'); ?> 

更多信息:https://www.codeigniter.com/userguide3/helpers/form_helper.html,滚动至form_dropdown([$name = ''[, $options = array()[, $selected = array()[, $extra = '']]]])