$ _GET使用旧值

时间:2016-03-02 19:02:47

标签: javascript php jquery html twitter-bootstrap

我尝试启动远程引导模式并在模态中填充数据表。我第一次从link1启动模态时它可以工作并设置变量但是如果我点击link2模态打开但使用来自link1的数据,反之亦然。

在父页面上,我通过php创建链接,如下所示:

PHP:

echo '<a data-toggle="modal" data-target="#viewComments" href="./remotemodal.php?object='.urlencode($row['OBJECT_NAME']).'&date='.urlencode($row['DATE_OCCURED']).'&error='.urlencode($row['ERROR']).'" class="btn-sm btn-info" ><i class="fa fa-comment-o"></i> View Comments</a>';

它正确填充链接,类似于以下内容:

  

Link1: remotemodal.php?object = Cluster1&amp; date = 03%2F01%2F2016 + 23%3A48&amp; error = Error1

     

Link2: remotemodal.php?object = Cluster2&amp; date = 03%2F02%2F2016 + 17%3A44&amp; error = Error2

这是remotemodal.php的PHP:

PHP:

<?php

    $object = NULL;
    $date = NULL;
    $error = NULL;

    echo '<script type="text/javascript">alert("' . $object . '")</script>';
    echo '<script type="text/javascript">alert("' . $date . '")</script>';
    echo '<script type="text/javascript">alert("' . $error . '")</script>';

    if ( !empty($_GET['object'])) {
        $object = $_GET['object'];
        $date = $_GET['date'];
        $error = $_GET['error'];
    }

    echo '<script type="text/javascript">alert("' . $object . '")</script>';
    echo '<script type="text/javascript">alert("' . $date . '")</script>';
    echo '<script type="text/javascript">alert("' . $error . '")</script>';

?>

如果我直接转到链接,它们可以工作,我在js警报中看到了正确的变量。我试图在模态关闭时从父页面清除模态数据,但没有任何工作

使用Javascript:

<script>
    $('body').on('hidden.bs.modal', '.modal', function () {
        $(this).removeData('bs.modal');
    });
</script>

3 个答案:

答案 0 :(得分:2)

查看documentationremoveData似乎仅适用于使用数据属性的数据集。

因此,您必须改变设置模态数据的方式或通过jQuery单独设置数据。

实际上,经过一些谷歌搜索后,似乎这是this question.

的副本

答案 1 :(得分:1)

您是通过ajax填充模态正文/内容吗?

<a data-toggle="modal" data-target="#viewComments" href="http://www.thisurl.com/never/gets?called" >Open Modal</a>

bootstrap只是切换数据目标的可见性......从不遵循链接

答案 2 :(得分:0)

我的结果与此不同,但与Dynamically load information to Twitter Bootstrap modal

类似

在父页面上,我使用我想传递的变量填充链接

<a object="'.urlencode($row['OBJECT_NAME']).'" date="'.urlencode($row['DATE_OCCURED']).'" error="'.urlencode($row['ERROR']).'" data-toggle="modal" data-target="" href="#" class="btn-sm btn-info" ><i class="fa fa-comment-o"></i> View Comments</a>';

模式有一个隐藏的div javascript在点击时显示

<div id="modalContent" style="display:none;">
...table here...
</div>

然后当单击按钮时,我从链接中获取变量,创建数据表并将变量传递给ajax。然后当模态关闭时,我销毁表格,以便用户可以单击另一个链接。

使用Javascript:

$(".btn-info[data-toggle=modal]").click(function() {
  var object = $(this).attr('object');
  var date = $(this).attr('date');
  var error = $(this).attr('error');
  $('#viewComments').modal();
  $('#modalContent').show();
  table = $('#activity-report').DataTable({
    "order": [
      [0, "desc"]
    ],
    "displayLength": 10,
    "bprocessing": true,
    "bserverSide": true,
    "sAjaxSource": "remotemodal.php?object=" + object + "&date=" + date + "&error=" + error,
    "sServerMethod": "POST"

  });
});
$('#viewComments').on('hidden.bs.modal', function() {
  table.destroy();
});