2013-09-05 19 views
0

嗨,我一直在尝试更新我的数据库上的特定记录。得到它的身份证后,使用“baseurl”在URL中传递到目前为止我可以通过该变量,但似乎无法更新记录。这里是我的控制器类update_request_record.php,它包含函数Update函数,该函数用于从数据库中获取整个记录,该函数加载Update_request_view_page.php,其中保存了将允许用户更新所需字段的表单。到目前为止,我所遇到的形式不显示在所有的问题,请help.Thanks更新在codeigniter中设置的特定记录

<?php 
class Update_Request_Record extends CI_Controller { 

public function Update_Request_Record() 
{ 
     parent::__construct(); 

} 

function Update() 
{ 
    $id = $this->uri->segment(3); 

    $this->load->database(); 
    $query = $this->db->get_where('test_request', array('id' => $id)); 
    return $query->result(); 
    $this->load->view('update_request_view'.$query); 

} 
function Submit() 
{ 
    $this->load->model('update_requestmodel');   

    if($this->input->post('submit')){ 
     $this->update_requestmodel->Update();     
    } 
    //redirect('home'); 
} 
} 

?> 

这里是我的模型

<?php 
class Update_Requestmodel extends CI_Model { 
// model constructor function 
function __construct() { 
    parent::__construct(); // call parent constructor 
    $this->load->database(); 
} 


function Update() 
{ 
    $new_data = array(

     'applicant_name'=>$this->input->post('applicant_name'), 
     'applicant_address'=>$this->input->post('applicant_address') 
    ); 

    $this->db->update('test_request', $new_data); 
    //redirect('home'); 
} 
} 
?> 

这是从通过记录的ID我的列表视图页面控制器Update_request_record.php

<table class="list_header" bgcolor="#ffffff" border="0" width="960px" cellpadding="4px"> 

      <?php foreach($query as $row): ?> 
      <tr> 

       <td style="border-right: dashed 1px #c0c0c0;text-align: center;border-bottom: solid 1px #c0c0c0;"><?php echo $row->id; ?>.</td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;" ><?php echo $row->testing_reason;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->applicant_name;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->authorizer_name;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->received_by;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->test_required;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->test_specification;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->laboratory_number;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><?php echo $row->date;?></td> 
       <td style="text-align: left;border-bottom: solid 1px #c0c0c0;"><a href="<?php echo base_url().'update_request_record/Edit/'.$row->id;?>">Edit</a></td> 
      </tr> 
      <?php endforeach; ?>   
     </table> 

这里是我的形式update_request_view.php

<div id="analysis_request" class="analysis_request" > 
     <?php echo validation_errors(); ?> 
     <?php echo form_open('update_request_record/Submit',array('name'=>'test_request_update_form'));?> 
     <table class="table_form" width="750px" height="500px" border="0" cellpadding="4px" align="center"> 
      <tr> 
       <td colspan="7" align="center" style="padding:8px;border-bottom: solid 1px #bfbfbf;"> 
        <b><h3>UPDATING TEST REQUEST FORM</h3></b> 
       </td> 
      </tr> 
      <tr> 
       <td align="center" style="border-right: dashed 1px #bfbfbf;"><b>1.</b></td> 
       <td colspan="2"><b>Name of Applicant</b></td> 
       <td colspan="4"><textarea rows="1" cols="50" name="applicant_name" value="<?php echo $query->applicant_name;?>"></textarea></td> 
      </tr> 
      <tr> 
       <td align="center" style="border-right: dashed 1px #bfbfbf;"></td> 
       <td colspan="2"><b>Address of Applicant</b></td> 
       <td colspan="4"><textarea rows="1" cols="50" name="applicant_address"></textarea></td> 
      </tr> 
      <tr> 
       <td style="border-top: dotted 1px #bfbfbf;text-align: center;" colspan="7" ><input type="submit" name="submit" value="Submit"></td> 
      </tr> 
     </table> 
     </form> 
    </div> 


</div> 
+0

你的表单在哪里? –

+0

只需加上表格 – user2750638

回答

1

帖子在这里命名id一个hidden input你的表格$id,那就试试这个:

加入这一行表单里面:

<?php echo form_hidden('id', $query->id) ?> 

然后在你的模型做了以下变化:

$this->db->where('id', $this->input->post('id')); 
$this->db->update('test_request', $new_data); 
+0

让我知道它是否适用于您! –

+0

娜没有工作,但我有点想出问题的重新编辑我的模型功能更新(),Update_request_recored.php,它现在工作 – user2750638

0

正如对您的代码的建议改进使其稍微更干一样,您可以将其引入您的模型中:

$column_mapping = array(
      'db_col1' => 'input_field1' 
      //more columns/fields 
     ); 

foreach ($column_mapping as $k => $v) { 
    $new_data[$k] = $this->input->post($v); 
} 

就个人而言,我看到重复的代码一大堆诸如'something' => $this->input->post('something');并认为“AHHHH!”。

相关问题