如何使用Codeigniter实现CRUD操作?

时间:2017-07-03 05:42:32

标签: php codeigniter

我正在尝试使用Codeigniter实现CRUD操作。我的SQL表由ID,Name,Class和Section组成。我的编辑功能有问题,这是代码:

型号:

function update_records($data){
        $this->db->where('ID',$this->uri->segment(3));
        $this->db->update('tbl_demo',$data);
    }

控制器:

function update($id){
        $site_data = $this->site_model->get_record($id);
        $view_data = array ();
        $view_data['site_data'] = $site_data;
        $this->load->view("edit_site" , $view_data);
        $data = array(
            'name'=>$this->input->post('name'),
            'class' => $this->input->post('class'),
            'section' => $this->input->post('section')
            );
        $this->site_model->update_records($data);
}

查看:

<?php echo form_open('site/update');?>
<fieldset class='fieldset'>
    <legend>Updata Records : </legend>
    <label class='labelWidth' for='name'>Name : </label>
    <input type='text' name='name' id='name' value='<?php echo $site_data[0]->Name?>'/></br></br>

    <label class='labelWidth' for='class'>Class : </label>
    <input type='text' name='class' id='class' value='<?php echo $site_data[0]->Class?>'/></br></br>

    <label class='labelWidth' for='section'>Section : </label>
    <input type='text' name='section' id='section' value='<?php echo $site_data[0]->Section?>'/></br></br>

    <center><input class='label' type='submit' value='Submit'/></center>
</fieldset>

这是另一个主视图,我从中发送我想要编辑的记录的ID,如下所示:

<td><?php echo anchor("site/update/$row->ID",'Edit')?></td>

我得到2个错误为'消息:缺少参数1的Site :: update()'和'消息:未定义的变量:id'之后,我的ID保持不变,但名称,类和部分被清空。

2 个答案:

答案 0 :(得分:2)

你的观点::

  <?php echo form_open(uri_string());?>
    <fieldset class='fieldset'>
        <legend>Updata Records : </legend>
        <label class='labelWidth' for='name'>Name : </label>
        <input type='text' name='name' id='name' value='<?php echo $site_data[0]->Name?>'/></br></br>

        <label class='labelWidth' for='class'>Class : </label>
        <input type='text' name='class' id='class' value='<?php echo $site_data[0]->Class?>'/></br></br>

        <label class='labelWidth' for='section'>Section : </label>
        <input type='text' name='section' id='section' value='<?php echo $site_data[0]->Section?>'/></br></br>

        <center><input class='label' type='submit' value='Submit'/></center>
    </fieldset>
<?php echo form_close();?>

答案 1 :(得分:1)

function update($id){
        $site_data = $this->site_model->get_record($id);
        $view_data = array ();
        $view_data['site_data'] = $site_data;
        $this->load->view("edit_site" , $view_data);
        $data = array(
            'name'=>$this->input->post('name'),
            'class' => $this->input->post('class'),
            'section' => $this->input->post('section')
            );
        $this->site_model->update_records($data);

        // Redirection

        redirect ( 'here add your controller name' );
}