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

[已解决] 关于修改功能的小问题

[复制链接]
发表于 2010-2-21 16:37:28 | 显示全部楼层 |阅读模式
在做修改功能,我的思路是从数据库中获取原先记录,然后在修改的界面用foreach在表单的value中循环输出各个字段……结果现在发现这样子以后,及时界面上修改了,表单提交上去还是原本foreach读取的值,修改不了!

应该怎么实现修改功能呢?帮忙指点一下~
发表于 2010-2-21 17:16:09 | 显示全部楼层
那不可能,楼主贴一下代码吧,楼主的做法是常规做法,没问题。
 楼主| 发表于 2010-2-21 17:48:21 | 显示全部楼层
回复 2# Hex


    麻烦了!谢谢HEX~
view中:
<hr />
<?php echo form_open('client/modify');//提交到modify作修改?>
<strong>请修改客户资料</strong>
<?php foreach ($get as $row):?>
<p>客户姓名<input type="text" name="name" value="<?=$row->name?>"/></p>
<p>地址input type="text" name="address" value="<?=$row->address?>"/></p>
<p>电子邮箱<input type="text" name="email" value="<?=$row->email?>"/></p>
<p>电话input type="text" name="telephone" value="<?=$row->telephone?>"/></p>
<p>手机<input type="text" name="mobile" value="<?=$row->mobile?>"/></p>
<p>
<input type="submit" name="submit" value="提交" />
<input type="reset" name="submit" value="重置" />
</p>
<?php endforeach;?>
</form>[]

MODEL中:
function get($id) { //获取指定ID的记录,结果读出到修改的表单中
  $this->db->select('*')->from('client');
  $this->db->where('cli_id',$id);
  $query = $this->db->get();
  return $query->result();

function modify($id) {//执行修改过程
  $fields = array(
    'name' => $this->input->post('name'),
    'address' => $this->input->post('address'),
    'email' => $this->input->post('email'),
    'mobile' => $this->input->post('mobile'),
    'telephone' => $this->input->post('telephone'),
    'date' => date('Y-m-d H:i:s'),
    'account' => $this->session->userdata('name')
            );
  $this->db->where('cli_id', $id);
  $this->db->update('client', $fields);
}

C中:
function get() {
  $this->load->view('header_view');
  $this->load->view('user_view');
  $this->load->view('tab_view');//上面三个都是头部信息
  
  $id = $this->uri->segment(3);
  $this->load->model('client_model');
  $data['get'] = $this->client_model->get($id);
  $this->load->view('client/modify_view',$data);
  
  $this->load->view('footer_view'); //尾部信息
}
function modify() {
  $id = $this->uri->segment(3);
  $this->load->model('client_model');
  $this->client_model->modify($id);
  
  redirect('client');
发表于 2010-2-21 18:07:18 | 显示全部楼层
这代码看起来没什么问题,如果修改了提交后还是之前的数据,那肯定是见鬼了,呵呵。。。。
所有的表单都是这样做的,这本身就和 PHP 没什么关系。

PS: 注意看一下 $fields 这个数组是不是正确的,用 print_r 看看。
 楼主| 发表于 2010-2-22 13:03:13 | 显示全部楼层
回复 4# Hex


    哦,是我粗心了~现在解决了~麻烦管理员结贴了!

本版积分规则