使用AJAX在Bootstrap Modal上调用PHP函数

Tha*_*cky 8 javascript php bootstrap-modal twitter-bootstrap-3

我有一个使用PHP循环在我的页面上回显的用户列表.当我单击每个用户的名称时,会弹出Bootsrap Modal并显示用户的更多详细信息.链接看起来像这样.

<a href="#user"  data-toggle="modal"  data-id="{$user['id']}">UserName</a>
Run Code Online (Sandbox Code Playgroud)

如您所见,我将用户的ID传递给Bootstrap模式,以便我可以通过调用get_user_by_id()Bootstrap模式来使用它来检索用户的其他信息.

莫代尔看起来像这样

<div class="modal fade" id="user">
    <div class="modal-header">
        <button class="close" data-dismiss="modal">×</button>
        <h3>Modal header</h3>
    </div>
    <div class="modal-body">
        <?php
          $user = get_user_by_id($id);
         ?>
        <input type="text" name="bookId" id="bookId" value=""/>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS代码是这样的

$('#user').on('show.bs.modal', function (event) {
   var button = $(event.relatedTarget)
   var id = button.data('id')
})
Run Code Online (Sandbox Code Playgroud)

根据上面的JS代码,我的用户ID在var id变量中.但是,我无法想象如何将上述PHP函数的值用作参数.

那有什么办法吗?

我编辑的问题是关于AJAX方法更加独特,大多数答案都基于AJAX

PS:我是PHP和Bootstrap的新手.

Cay*_*e K 2

您将需要使用ajax来运行 PHP。正如 @Tom 所说,在 DOM 中加载后,javascript 无法访问 PHP。PHP 是一种服务器端语言,只能这样访问。

通过 ajax 连接到 PHP 后,您就可以加载div返回的内容。只有在加载内容之后才应该打开模式,否则您会看到显示的框跳动,然后内容刚刚出现。

基本示例

$(".btn").click(function(){
    // AJAX code here.
    $.ajax(
    ....
    success: function($data){
      $('.target').html(data)
      $("#myModal").modal('show');
    }
    );
});
Run Code Online (Sandbox Code Playgroud)