duanlu2935 2016-12-31 00: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 14: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>';
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作