引导程序模式无法刷新数据

时间:2019-09-17 06:47:15

标签: javascript php jquery html codeigniter-3

在关闭模态然后打开另一个模态之后,显示的数据不会改变。我需要数据更改。这是按钮的html:

<a data-toggle="modal" title="Quick View" href="#" onclick="detailsmodal(<?= $row->id; ?>)"><i class=" ti-zoom-in"></i><span>Quick Shop</span></a>

然后这是我的Javascript代码:

function detailsmodal(id) {
    var data = {"id" : id};
    // send data to store_items/detailsmodal
    jQuery.ajax({
        url     : '<?= base_url()?>store_items/detailsmodal',
        method  : "post",
        data    : data,
        success : function(data){
            jQuery('body').append(data);
            jQuery('#details-modal').modal('toggle');


        },
        error   : function(){
            alert("Something went wrong!");
        }
    });
}

这是我的store_items / detailsmodal函数:

function detailsmodal() {

    $item_id = $this->input->post('id', TRUE);
    $query = $this->get_where($item_id);
    foreach ($query->result() as $item) {
        $data['item_title'] = $item->item_title;
    }
    $this->load->view('detailsmodal', $data);
}

最后是视图。视图工作正常。唯一的问题是它不显示后面的数据。我不知道问题出在哪里。我一直在这里和那里搜索,但找不到可以解决我的问题的解决方案。请帮忙。

3 个答案:

答案 0 :(得分:0)

如果我正确理解,它会在第一次正确加载,然后尝试显示不同的模态只是在显示具有相同数据的相同模态。

这很可能是因为您没有为模态使用唯一的id。通过id="details-modal"添加到DOM的第一个模态是jQuery('#details-modal')找到的唯一模态,因此它将是每次显示的相同模态。您可以在关闭DOM时从DOM中删除该模式,但是最终当用户重新打开他们关闭的模式时,您将重复已经进行的Ajax调用。

请考虑将$row->id添加到返回模态即id的{​​{1}}中,然后在javascript函数中首先检查是否已经拥有所需的特定模态,如果然后不要再调用ajax来获取它。

id="details-modal-4"

答案 1 :(得分:0)

data:JSON.stringify(data)

JSON的常见用法是与Web服务器交换数据。

将数据发送到Web服务器时,数据必须是字符串。

使用JSON.stringify()将JavaScript对象转换为字符串。

答案 2 :(得分:0)

我终于解决了它。我刚刚在jQuery('#details-modal').remove();上方添加了此代码jQuery('body').append(data);,现在一切正常。在此先感谢所有尝试提供帮助的人。