使用模态显示另一个表中的数据 - Codeigniter

时间:2016-04-05 09:21:03

标签: php codeigniter bootstrap-modal

我有2张桌子

Table 1 ( Image 1)

现在,当我点击详细信息时,我想显示表2中包含报告代码的数据,因为我点击了表1(图1)

Table 2 (Image 2)

现在我想在模态上显示它,所以这是示例

1)点击详细信息按钮 - >获取reportcode - >将reimbursename等显示给模态

你能告诉我我该先做什么吗?你能告诉我一个计划,任何答案都将不胜感激。感谢

1 个答案:

答案 0 :(得分:2)

我的建议是:

1 - 添加一个类到详细信息按钮,即:detailButton和具有特定reportCode的数据属性或href。

<table>
   <tr> 
     <td> ... </td>
     <td> <button class='detailButton' href='<?php echo $reportCode; ?>' ... </button> </td>

2 - 将jquery添加到页面底部:

$('.detailButton').click(function(e){
    e.preventDefault();
    var reportCode = $(this).attr('href');

    var url = "yourUrl/controller/function";
    $.post(url,{ code:reportCode },function(data){
        //do stuff
        //i.e: $('.modal').html(data).show();
    });
});

现在你有一个获取reportCode的函数,通过POST将它发送到你的控制器,你返回一些东西,函数得到响应并附加到一个html。

注意,这样您必须从控制器返回一个表。你也可以在恐怖的基础上建立。

希望它有所帮助!

更新: 您可以检查模型的值,然后使用exisitin模板(例如生成详细信息表的模板),并返回到视图作为要附加到正确位置的数据(方法1):

function detail(){
    $getcode= $this->input->post('reportCode');
    $data['showdetail'] = $this->model_expreport->showdetail($getcode);
    $ret = $this->load->view('detail_template',$data,true); //return as data   
    print_r($ret);
}

或者您可以使用方法2:

function detail(){    
   $getcode= $this->input->post('reportCode');
   $data['showdetail'] = $this->model_expreport->showdetail($getcode);

   $this->output->set_content_type('application/json');
   $this->output->set_output(json_encode($data));
}

这样,视图将返回一个JSON,您可以迭代并构建自己的页面。或者您可以创建完整视图并将其作为数据返回(以便仅附加到您的视图)。

你可以使用两者。

在视图中,您将看到完整视图:

$.post(url,{ code:reportCode },function(data){
    $('#modal').html(data); //put the 'detail' response to the modal
}

或者使用JSON,您必须迭代并构建自己的div,有很多教程:https://uno-de-piera.com/cargar-json-con-jquery-y-codeigniter/