duanlu2935 2016-12-30 16:14
浏览 59
已采纳

在codeigniter的控制器中更改了获取html链接的问题

I was using ajax calls. when I click on the edit link it would pop up a modal with all the information. I now want to change it, so that it goes to an edit page instead. The part I need changed is the onclick on the edit link bellow in the code from edit_record to instead call a function in my controller called edit. Any help would be appreciated I spent quit a long time trying different ways and keep getting errors.

Here is the controller function code called ajax_list

public function ajax_list()
{
    $list = $this->your_table->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $your_table) {
        $no++;
        $row = array();
        $row[] = $your_table->name;
        $row[] = $your_table->title;
        $row[] = $your_table->body;


        //add html for action
        $row[] = '<a class="btn btn-sm btn-link " href="javascript:void()" title="Edit" onclick="edit_record('."'".$your_table->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
                  <a class="btn btn-sm text-warning" href="javascript:void()" title="Hapus" onclick="delete_record('."'".$your_table->id."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';

        $data[] = $row;
    }

    $output = array(
                    "draw" => $_POST['draw'],
                    "recordsTotal" => $this->your_table->count_all(),
                    "recordsFiltered" => $this->your_table->count_filtered(),
                    "data" => $data,
            );
    //output to json format
    echo json_encode($output);
}

Here is the code in my your_controller called edit

//loads a single record with the data dispalyed for editing
    function edit($id)
    {
        $data['r']=$this->your_table->get_by_id($id);
        $this->load->view('pages/edit', $data);
    }


        //updates data in the database from the edit function
    function save_edit()
    {
        $id=$this->input->post('txtid');
        $data=array(
            'name'=>$this->input->post('txtname'),
            'title'=>$this->input->post('txttitle'),
            'body'=>$this->input->post('txtbody'));


        $this->db->where('id', $id);
        $this->db->update('your_table', $data);
        redirect('your_controller/index');
    }

展开全部

  • 写回答

1条回答 默认 最新

  • doude4924 2016-12-31 06:10
    关注

    If your controller is called "edit" and your method has the same name, just change to:

    //add html for action
        $row[] = '<a class="btn btn-sm btn-link " href="/edit/edit/'.$your->table->id.'" title="Edit"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
                  <a class="btn btn-sm text-warning" href="javascript:void()" title="Hapus" onclick="delete_record('."'".$your_table->id."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部