0

I'm fairly new to CI. I have a customer database which stores a bunch of customer information. I have also created an Update controller to update current customer information. The update form is the same form as the new customer form but for the value I've got it pulling the old data from the database. My problem is it pulls all the data and displays it in it's propor field except the drop down field. Any ideas how to fix this?

CONTROLLER:

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);
}

VIEW 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>
4

1 回答 1

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>

希望能帮助到你 :)

于 2012-10-04T17:51:27.867 回答