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 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀