使用codeigniter更新数据无效

使用codeigniter更新数据无效

问题描述:

I am currently working on a project using codeigniter. As part of the project functionalities, it have edit or update function and I got some errors with it, its not working.Here are my codes as follows :

Workers_model

This the edit function or update .

   public function edit_workers_details ($worker_id, $data) {
            $this->db->where('worker_id', $worker_id);
            $this->db->update('worker_tb', $data);

            return $this->db->affected_rows();
        }

  public function get_worker_details ($worker_id) {
    $this->db->select();
    $this->db->from('worker_tb');
    $this->db->where('worker_id', $worker_id);

    $query = $this->db->get();
    return $query->result_array();
}

**Workers (controller)**

public function edit_worker ($worker_id) {

        if ($_POST) {
            $worker_details = array (
                'worker_fname' => $_POST['worker_fname']


            );

            $this->Workers_model->edit_workers_details($worker_id, $worker_details);
            redirect("Workers/index");
        }

        $data['details'] = $this->Workers_model->get_worker_details($worker_id);
        $this->load->view('Worker/updateWorker',$data);
}

updateWorker (view)

<center>
    <h1> Edit Worker Details </h1>
    <?php foreach ($details as $detail) {?>
        <form role="form" action= "<?php echo site_url("Workers/edit_worker/".$detail['worker_id']);?>" method="POST">

            Name: &nbsp;&nbsp;&nbsp; <input type="text" class="form-control" value = "<?php echo $detail['worker_fname'];?>" ><br />

            <button type="submit" class="btn btn-primary"> Update </button>

        </form>

    <?php } ?>

</center>

My problem now is that when I click the Update button it's not working and does not update data.What should I do? Any ideas or help is appreciated. Thanks

我目前正在使用codeigniter处理项目。 作为项目功能的一部分,它有编辑或更新功能,我得到了一些错误,它不起作用。这是我的代码如下: p>

Workers_model strong > p>

这是编辑功能或更新。 p>

  public function edit_workers_details($ worker_id,$ data){
 $ this-&gt  ; db-&gt; where('worker_id',$ worker_id); 
 $ this-&gt; db-&gt; update('worker_tb',$ data); 
 
返回$ this-&gt; db-&gt;  affected_rows(); 
} 
 
公共函数get_worker_details($ worker_id){
 $ this-&gt; db-&gt; select(); 
 $ this-&gt; db-&gt; from('worker_tb'  ); 
 $ this-&gt; db-&gt; where('worker_id',$ worker_id); 
 
 $ query = $ this-&gt; db-&gt; get(); 
 return $ query-&gt  ; result_array(); 
} 
 
 **工作人员(控制器)** 
 
公共函数edit_worker($ worker_id){
 
 if($ _POST){
 $ worker_details = array(
  'worker_fname'=&gt; $ _POST ['worker_fname'] 
 
 
); 
 
  $ this-&gt; Workers_model-&gt; edit_workers_details($ worker_id,$ worker_details); 
 redirect(“Workers / index”); 
} 
 
 $ data ['details'] = $ this-&gt; Workers_model  - &gt; get_worker_details($ worker_id); 
 $ this-&gt; load-&gt; view('Worker / updateWorker',$ data); 
} 
  code>  pre> 
 
   updateWorker(view) strong>  p> 
 
 
 &lt; center&gt; 
&lt; h1&gt; 编辑工作人员详细信息&lt; / h1&gt; 
&lt;?php foreach($ details as $ detail){?&gt; 
&lt; form role =“form”action =“&lt;?php echo site_url(”Workers / edit_worker  /".$detail['worker_id']);?>”  method =“POST”&gt; 
 
名称:&amp; nbsp;&amp; nbsp;&amp; nbsp;  &lt; input type =“text”class =“form-control”value =“&lt;?php echo $ detail ['worker_fname'];?&gt;”  &gt;&lt; br /&gt; 
 
&lt; button type =“submit”class =“btn btn-primary”&gt; 更新&lt; / button&gt; 
 
&lt; / form&gt; 
 
&lt;?php}?&gt; 
 
&lt; / center&gt; 
  code>  pre> 
 
 我现在的问题是,当我点击“更新”按钮时,它不起作用,不会更新数据。我该怎么办?
任何想法或帮助表示赞赏。 谢谢 p> 
  div>

Your <input> field missing name attribute

So final well form code is

In View

<center>
    <h1> Edit Worker Details </h1>
    <?php foreach ($details as $detail) {?>
        <form role="form" action= "<?php echo site_url("Workers/edit_worker/".$detail['worker_id']);?>" method="POST">

            Name: &nbsp;&nbsp;&nbsp; <input type="text" name="worker_fname" class="form-control" value = "<?php echo $detail['worker_fname'];?>" ><br />

            <button type="submit" class="btn btn-primary"> Update </button>

        </form>

    <?php } ?>

</center>

In Controller

public function edit_worker ($worker_id) {

    $worker_fname = $_POST['worker_fname'];

    if(!empty($worker_fname))
    {
        $result = $this->Workers_model->edit_workers_details($worker_id, $worker_fname);
        if($result == 1)
        {
            $data['details'] = $this->Workers_model->get_worker_details($worker_id);
            $this->load->view('Worker/updateWorker',$data); 
        }
        else
        {
            echo 'Update Failed'
        }

    }
    else
    {
        echo 'worker_fname is empty'
    }    

}

In Model

public function edit_workers_details ($worker_id, $worker_fname) {
    $data = array(
        'worker_fname' => $worker_fname
    );

    $this->db->where('worker_id', $worker_id);
    if(!$this->db->update('worker_tb', $data))
    {
        // Update Failed
        return $log = 0;
    }
    else
    {
        // Update Success
        return $log = 1;
    }

}

public function get_worker_details ($worker_id) 
{
    $this->db->select();
    $this->db->from('worker_tb');
    $this->db->where('worker_id', $worker_id);

    $query = $this->db->get();
    return $query->result_array();
}

use name attribute as "worker_fname"

Name: &nbsp;&nbsp;&nbsp; <input type="text" name ="worker_fname"class="form-control" value = "<?php echo $detail['worker_fname'];?>" ><br />

then you can get value form value by from controller Like this

$this->input->post("worker_fname"); or $_POST['worker_fname']

then do what you want :D :D