Onclick事件无法打开Bootstrap模式

问题描述 投票:-1回答:2

我试图在按钮单击时打开一个bootstrap模式,但看起来我的代码没有运行。这是我的代码片段:

<button type="button" class="btn btn-xs btn-default" onclick="openViewUserModal(<?= $users['userid']; ?>); return false;">
  <span class="glyphicon glyphicon-eye-open"></span>
</button>
function openViewUserModal(id) {
  var data = {
    "id": id
  };
  jQuery.ajax({
    url: "includes/viewUser.php",
    method: "POST",
    data: data,
    success: function(data) {
      jQuery('body').append(data);
      jQuery('#viewUserModal').modal({
        backdrop: 'static',
        keyboard: false,
        show: true
      });
    }
  });
}

单击按钮不会引起响应。我究竟做错了什么?

javascript php jquery html
2个回答
0
投票

这应该工作,标记echo语句。我认为这是一个错字。

<button type="button" class="btn btn-xs btn-default" onclick="openViewUserModal('<?php echo $users['userid']; ?>');">
  <span class="glyphicon glyphicon-eye-open"></span>
</button>

0
投票

假设<?= $users['userid']; ?>的输出是一个字符串,那么你需要将它包装在引号中:

onclick="openViewUserModal('<?= $users['userid']; ?>'); return false;"

话虽这么说,使用内联事件处理程序是一种非常过时的方法,应该避免这种方法。请改用不显眼的事件处理程序。您可以通过data属性为该事件处理程序提供参数,如下所示:

$('.btn').click(function() {
  $.ajax({
    url: "includes/viewUser.php",
    method: "POST",
    data: {
      "id": $(this).data('userid')
    },
    success: function(data) {
      $('body').append(data);
      $('#viewUserModal').modal({
        backdrop: 'static',
        keyboard: false,
        show: true
      });
    }
  });
});
<button type="button" class="btn btn-xs btn-default" data-userid="<?= $users['userid']; ?>">
  <span class="glyphicon glyphicon-eye-open"></span>
</button>
© www.soinside.com 2019 - 2024. All rights reserved.