用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3983|回复: 5
收起左侧

[已解决] form_dropdown下拉框修改数据的方法

[复制链接]
发表于 2010-10-7 10:03:01 | 显示全部楼层 |阅读模式
本帖最后由 ttyangz 于 2010-10-8 08:24 编辑

我有一个程序需要选择使用了下面的语句
echo form_label('用车部门');
//echo form_input('danwei');
$department    =      array();
$this->db->select('id, name');
$query = $this->db->get('department');
if ($query->num_rows() > 0)
{
  foreach ($query->result() as $row)
  {
      $department[$row->id] = $row->name;
  }
}
echo form_dropdown('departid', $department, '1');
这个是添加派车的.可以成功使用.
但是不知道修改派车的时候如何写代码.
参考了论坛里面的下列代码,但是没有办法搞定.
http://codeigniter.org.cn/forums/thread-211-1-1.html
   $this->db->select('id, url, name');
   $this->db->where('id','$id');
   $sitequery = $this->db->get('sites');
   $siterow = $sitequery->row();
   echo form_dropdown('url' 、 $urlarray, $siterow->url);
发表于 2010-10-7 10:52:19 | 显示全部楼层
$this->db->where('id','$id'); 单引号?
你这个查询结果是“没有row”,$siterow->url的值是NULL
那么dropdown只会落到默认选项上
 楼主| 发表于 2010-10-7 14:12:15 | 显示全部楼层
不是我写的,是CodeIgniter敏捷开发-表单那里拷贝的.
发表于 2010-10-7 16:49:02 | 显示全部楼层
var_dump($department),很可能是没有'1'
发表于 2010-10-7 21:27:29 | 显示全部楼层
本帖最后由 wndyd 于 2010-10-7 21:29 编辑

这个form_dropdown没有那么智能.试试这个!
MY_array_helper.php
PHP复制代码
 if ( ! function_exists('array_to_select'))
 {
 function array_to_select($results, $value = 'id', $key = 'name', $add_blank=false)
    {
     if(is_object($results)) $results = get_object_vars($results);
 
     $options = array();
 
     if(!empty($add_blank)) $options = array(null=>$add_blank);
 
     if(is_array($results))
     {
     foreach($results as $result)
     {     $options[$result[$value]] = $result[$key];
     }
     }
     return $options;
    }
 }
 
复制代码


然后:
PHP复制代码
 
$this->db->select('id,name');
$query=$this->db->get('department');
$data_array=$query->array_result();
$ci=$get_instance();
$ci->load->helper('array');
$option_data=array_to_select($data_array,'id','name');//from_dropdown('departid',$option_data);
 
复制代码
 楼主| 发表于 2010-10-13 20:00:46 | 显示全部楼层
感谢各位,ci敏捷开发上面写的是没有错误的,是我才疏学浅,没有组合起来.下面这样组合起来就可以编辑关联已有数据了.
echo form_label('部门');
$department    =      array();
$this->db->select('id, name');
$query = $this->db->get('department');
if ($query->num_rows() > 0)
{
  foreach ($query->result() as $rows)
  {
      $department[$rows->id] = $rows->name;
  }
}
   $this->db->select('id, departID');
   $this->db->where('id',$id);
   $departquery = $this->db->get('placcar');
   $departrow = $departquery->row();
    echo form_dropdown('departID' , $department, $departrow->departID);

本版积分规则