我正在从Tank_auth更新一些控件,我试图在register_form中插入一个下拉列表。下拉列表包含sql查询中的数组。 型号代码:
public function get_group(){
$query = $this->DB1->query('SELECT val7 from table group by val7;');
if($query->num_rows()>0){
$group= array();
foreach($query->result_array() as $r){
$group[$r['val7']] = $r['val7'];
}
}
return $group;
}
视图代码:
<div class="control-group">
<?php echo form_label('Grupo', $grupo['id'], array('class' => 'control-label')); ?>
<div class="controls">
<?php echo form_error('grupo'); ?>
<?php echo form_dropdown('grupo',$list_groups)?>
<p class="help-block"></p>
</div>
数组显示:Array([cliente1] =&gt; cliente1 [cliente2] =&gt; cliente2 [cliente3] =&gt; cliente3)然后提交它写入DB的表单,但它写入0值。 在控制器中我使用:
$this->form_validation->set_value('grupo')
最好的方法是什么?
非常感谢。
修改 有关php代码的更多信息: 视图文件:
<!--Top of file, more code-->
$grupo = array(
'name' => 'grupo',
'id' => 'grupo',
'value' => set_value('grupo'),
);
<!--rest of the form, start the form_dropdown()-->
<div class="control-group">
<?php echo form_label('Grupo', $grupo['id'], array('class' => 'control-label')); ?>
<div class="controls">
<?php echo form_error('grupo'); ?>
<?php echo form_dropdown('grupo',$list_groups)?>
<p class="help-block"></p>
</div>
<!--rest of the form, end of view-->
控制器:
<!--top of the controller and resto of the code, start validation-->
$this->form_validation->set_rules('grupo', 'Grupo', 'trim|required|xss_clean');
<!--rest of all validations, pass the values to $data array and create_user function-->
$this->form_validation->set_value('grupo'),
图书馆:
<!--start function with arguments-->
function create_user($username, $email, $password, $email_activation, $grupo){
$data = array(
'username' => $username,
'password' => $hashed_password,
'email' => $email,
'servicegroup' => $grupo,
'last_ip' => $this->ci->input->ip_address(),
);
模特:
if ($this->db->insert($this->table_name, $data)) {
$user_id = $this->db->insert_id();
if ($activated) $this->create_profile($user_id);
return array('user_id' => $user_id);
}
结果是servicegroup的空变量。 我认为这是form_dropdwon没有将值传递给控制器的问题。
感谢您的帮助。
答案 0 :(得分:0)
解决!! 只是参数顺序的一个简单问题。