2

我使用带有form_dropdown助手的 CI 表单并尝试将 Mysql 数据拉入其选项中,从下面的代码中,它仅将 db 中的最后一条记录检索到选项列表中?

请告知我的代码有什么问题?

模型

 public function getStates() {
    $query = $this->db->get('states');
    $return = array();

    if($query->num_rows() > 0){
        $return[''] = 'please select';
        foreach($query->result_array() as $row){
            $return[$row['state_id']] = $row['state_name'];
        }
    }
    return $return;
}

控制器

$this->load->model('db_model');

$data['options'] = $this->db_model->getStates();

$this->load->view('create_new', $data);

看法

$state = array(
'name' => 'state',
'id' => 'state',
//'value' => set_value('state', $state)
);

<?php echo form_label('State', $state['id']); ?>
<?php echo form_dropdown($state['name'], $options); ?>
<?php echo form_error($state['name']); ?>
<?php echo isset($errors[$state['name']])?$errors[$state['name']]:''; ?>
4

2 回答 2

0

尝试这个:

function getStates() {
    $return = array();
    $query  = $this->db->get('states')->result_array();
    if( is_array( $query ) && count( $query ) > 0 ){
        $return[''] = 'please select';
        foreach($query as $row){
            $return[$row['state_id']] = $row['state_name'];
        }
    }
    return $return;
}
于 2013-11-01T09:42:49.003 回答
0

像这样将模型的完整查询结果发送到视图

模型

 public function getStates() {
    $query = $this->db->get('states');
    return $query->result();
}

控制器保持原样,现在您可以像这样在下拉列表中填充状态:

看法

<?php
foreach($options as $opt){
  $options[$opt->state_id]=$opt->state_name;
}
echo form_dropdown($state['name'], $options);
?> 
于 2013-11-01T08:06:48.987 回答