一尘不染

使用PHP和AJAX填充模式内容?

ajax

我希望用户能够单击表,并根据他们单击的行-它会用与该行相关的内容(MYSQL查询)填充模式,并打开模式。

我尝试执行以下操作:-加载表内容-使用jQuery单击表时-使用AJAX通过单击的行信息发布到PHP文件-使用行信息执行MYSQL查询-
填充具有收集的内容的模态-打开模态

我遇到的问题是,因为这是一条MYSQL语句,并且该函数是非阻塞的,所以在模式开始打开时尚未声明变量。Web编程并不是我的强项,所以我确定我缺少一些简单的东西。

提前致谢!

编辑:

jQuery / AJAX

$('#alerts tbody').delegate('tr', 'click', function() {
  var id = $('td:eq(0)', this).text(); // Gets the ID of the row

  // PHP Method (below)


  // Passes ID through to PHP
  $.ajax({
    url: "alerts.php",
    method: "GET",
    data: {id: ID},
    async: true,
    done: function() {
        loadModalFunction();
    }
    });
});

的PHP

<?php
  if (!empty($_GET['id'])) {
    // MYSQL Query
    // Sets global variables    
  }
?>

模态

$('#info').find('.modal-title').text("Information (#" + id + ")");
$('#info').find('#modal-body-content').text("<?php echo $GLOBALS['content'];?>");

我知道,获取ID和获取内容是可行的,但是由于脚本初始化全局变量之前已加载模式,因此内容不会传递给ID。


阅读 259

收藏
2020-07-26

共1个答案

一尘不染

好了,这是我在此问题上的实现,仅提供基础知识并让您相应地编辑自己的代码会更简单一些。

首先,我的整个模式内容是一个具有ID的div, <div id="modalcontent"> </div>

然后,假设此按钮应打开并用数据填充我的模态

<a href="#" onclick="openModal()">Open</a>

openModal()看起来像这样

$.post("alerts.php", {
    id: ID
}, function(data) {//data will contain whatever alerts.php prints
document.getElementById("modalcontent").innerHTML = data;//insert data into modal
$('#my-modal').modal('toggle');//open modal
});

同样,有很多方法可以做到这一点。有更好的方法可以做到这一点。但是您应该了解这种工作方式,您只能在javascript中获取PHP文件的输出,并使用javascript编辑内容。您可以从另一个PHP脚本获取数据,该脚本将在需要时由javascript执行,但是PHP脚本本身无法修改已加载页面的内容。

使用此代码,并假设alerts.php意志echo "you have a notification";<div id="modalcontent"> </div>将变更为<div id="modalcontent">you have a notification</div>,然后进行模态的切换。此方法还确保仅 获取数据后才打开模式,因此如果没有内部数据,则无法打开模式。

2020-07-26