Codeigniter更新表单不检索下拉列表值

时间:2012-10-04 16:55:43

标签: php forms codeigniter

我对CI很新。我有一个客户数据库,存储一堆客户信息。我还创建了一个更新控制器来更新当前的客户信息。更新表单与新客户表单的格式相同,但是对于值,我从数据库中提取旧数据。我的问题是它拉出所有数据并将其显示在它的propor字段中,但下拉字段除外。任何想法如何解决这个问题?

控制器:

function edit_customer($id){
    $data['success']=0;
    if($_POST){
        $data_customer=array(
            'first_name'=>$_POST['first_name'],
            'last_name'=>$_POST['last_name'],
            'phone'=>$_POST['phone'],
            'email'=>$_POST['email'],
            'website'=>$_POST['website'],
            'business_name'=>$_POST['business_name'],
            'business_add'=>$_POST['business_add'],
            'business_cityState'=>$_POST['business_cityState'],
            'cc_type'=>$_POST['cc_type'],
            'cc_number'=>$_POST['cc_number'],
            'cc_exp'=>$_POST['cc_exp'],
            'cc_cvd'=>$_POST['cc_cvd'],
            'billing_add'=>$_POST['billing_add'],
            'billing_zip'=>$_POST['billing_zip'],
            'package'=>$_POST['package'],
            'assigned_zip_code'=>$_POST['assigned_zip_code'],
            'active'=>1
        );
        $data_customer['active'] = 1;
        $this->customer->update_customer($id,$data_customer);
        $data['success']=1;
    }
    $data['customer']=$this->customer->get_customer($id);

    $this->load->view('header');
    $this->load->view('edit_customer',$data);
    $this->load->view('footer');

}

MODEL:

function update_customer($id, $data_customer){
    $this->db->where('id', $id);
    $this->db->update('customers', $data_customer);
}

查看DROPDOWN:

<label for="cc_type">Credit Card Type:</label>
                <select name="cc_type" value="<?=$customer['cc_type'] ?>">
                  <option></option>
                  <option>Visa</option>
                  <option>Mastercard</option>
                  <option>American Express</option>
                  <option>Discover</option>
                </select>

1 个答案:

答案 0 :(得分:1)

要选择一个选项,您需要将selected属性添加到<option>元素。

例如:

<select name="type">
  <option>a</option>
  <option>b</option>
  <option selected="selected">c</option>
  <option>d</option>
</select>​

在此处查看:http://jsfiddle.net/3M4xv/

因此,在您的代码中,您可以执行以下操作:

<select name="cc_type">
  <option <?php echo ($customer['cc_type']=='Visa')?'selected="selected"':''; ?>>Visa</option>
  <option <?php echo ($customer['cc_type']=='Mastercard')?'selected="selected"':''; ?>>Mastercard</option>
  <option <?php echo ($customer['cc_type']=='American Express')?'selected="selected"':''; ?>>American Express</option>
  <option <?php echo ($customer['cc_type']=='Discover')?'selected="selected"':''; ?>>Discover</option>
</select>

希望有所帮助:)