2014-03-31 42 views
3

我想使用codeigniter编辑我的数据库记录,但我不能做到这一点,我不明白的问题是什么。请帮忙。如何使用Codeigniter编辑记录

这里是我的控制器代码:

public function edit() 
    { 
     $this->form_validation->set_rules('name','Name','trim|required'); 
     $this->form_validation->set_rules('email','E-mail','trim|required'); 
     $this->form_validation->set_rules('phone','Phone','trim|required'); 

     if ($this->form_validation->run() == FALSE) { 
      echo "error"; 
     } 
     else{ 
      $id = $this->input->post('id'); 
      $this->crud_mdl->editCrud($id); 
      echo "success"; 
     } 
    } 

这里是我的模式代码:

public function editCrud($id) 
    { 
     $update = array(
      'name' => $this->input->post('name'), 
      'email' => $this->input->post('email'), 
      'phone' => $this->input->post('phone') 
      ); 
     $this->db->where('id',$id); 
     return $this->db->update('test', $update); 
    } 

这是我的看法

<div> 
    <?php echo form_open('crud/edit');?> 
    <?php foreach ($records as $record) {?> 
    <label> ID </label> 
    <input type="text" name="id" id="id" disabled="disable" value = "<?php echo $record->id ;?>" /><br/> 
    <label>Name</label> 
    <input type="text" name="name" id ="name" value = "<?php echo $record->name ;?>" /><br/> 
    <label>E-Mail</label> 
    <input type="text" name="email" id ="email" value="<?php echo $record->email ;?>" /><br/> 
    <label>Phone</label> 
    <input type="text" name="phone" id ="phone" value = "<?php echo $record->phone ;?>" /><br/> 
    <input type="submit" name="edit" value="Edit" /> 
    <?php }?> 
    <?php echo form_close();?> 
</div> 
+0

你是否检查过你是否获得数组$ update的值? – Jenz

+0

是的,我检查我从阵列$更新获取更新值。但更新的记录不会保存到数据库中。 –

+0

如果您获取模型中的值,则应该更新它,因为我没有看到任何错误。 – Jenz

回答

4

您的input中的disabled="disable"id。这意味着它不会被包含在POST的表格中。您需要删除disabled="disable"

试一下:

<label> ID </label> 
<input type="text" name="id" id="id" value="<?php echo $record->id ;?>" /> 

对于正确的做法,应该将输入类型设置为hidden代替或把ID在URL(取决于您的应用程序)。

<input type="hidden" name="id" id="id" value="<?php echo $record->id ;?>" /> 
+2

你为什么要让用户更改ID?把它放在type =“hidden”!并显示在一个跨度或没有。 – Kalzem

+1

我不希望它被改变,我只是指出,如果有一个禁用的属性,那么它不会发送。该ID应该在URL中理想。 – SamV

+0

谢谢SamV和BabyAzert。它工作正常。 –