jQuery 包含的 php 文件中的选择器不起作用
jQuery selector in included php file not working
我做了一个简单的网站来管理和显示项目。对于我的问题,知道有 3 个文件就足够了:
admin-dashboard.php
显示项目和管理功能(减少数量,增加 ecc.)
<?php
include("includes/header.php");
include("dbqueries/db-connection.php");
include("includes/alerts.php");
?>
...
dashboard-utilities.js
包含了实现第1点 的所有JavaScript函数
...
// Reduce quantity button script
function reduceQuantity(item) {
$.ajax({
method: 'get',
url: '../dbqueries/reduceQuantity.php',
data: {
'current_item': item,
},
success: function() {
//alert("Quantità di " + "\"" + item + "\"" + " diminuita!");
$('#reduceqty-modal').modal('show');
// Reload page after closing the modal alert
$('#reduceqty-modal').on('hidden.bs.modal', function () {
window.location.reload();
})
}
});
}
...
alerts.php
将包含在操作成功时显示的所有 bootstrap 模态警报(即 "Quantity updated!")
<!-- Reduce quantity modal -->
<div id="reduceqty-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Quantità ridotta</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
...
所以问题是 reduceQuantity
函数的 "success" 部分不起作用。特别是模态不显示。
我认为 jQuery 找不到它的选择器,因为它在包含的文件中 (alerts.php
)。我认为是这样,因为如果我将警报代码直接放入主文件 admin-dashboard.php
一切正常。
提前致谢!
...问题与服务器有关。文件 alerts.php
没有正确的权限和正确的所有者。当你说它可能没有真正包含时,我注意到了它。
抱歉浪费大家的时间,谢谢大家!
听起来 reduceQuantity()
函数找不到模态元素,因为在解析 HTML 元素之前函数是 运行。这可能是因为您需要将 JQuery 包装在 $(document).ready(function(){})
中,或者您需要在 admin-dashboard.php
文件的末尾包含 Javascript(在结束 </body>
标签),然后将 alerts.php
放在顶部,以便在 Javascript 运行之前对其进行解析。您可能需要做这两件事。
我做了一个简单的网站来管理和显示项目。对于我的问题,知道有 3 个文件就足够了:
admin-dashboard.php
显示项目和管理功能(减少数量,增加 ecc.)
<?php
include("includes/header.php");
include("dbqueries/db-connection.php");
include("includes/alerts.php");
?>
...
dashboard-utilities.js
包含了实现第1点 的所有JavaScript函数
...
// Reduce quantity button script
function reduceQuantity(item) {
$.ajax({
method: 'get',
url: '../dbqueries/reduceQuantity.php',
data: {
'current_item': item,
},
success: function() {
//alert("Quantità di " + "\"" + item + "\"" + " diminuita!");
$('#reduceqty-modal').modal('show');
// Reload page after closing the modal alert
$('#reduceqty-modal').on('hidden.bs.modal', function () {
window.location.reload();
})
}
});
}
...
alerts.php
将包含在操作成功时显示的所有 bootstrap 模态警报(即 "Quantity updated!")
<!-- Reduce quantity modal -->
<div id="reduceqty-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Quantità ridotta</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Modal body text goes here.</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary">Save changes</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
...
所以问题是 reduceQuantity
函数的 "success" 部分不起作用。特别是模态不显示。
我认为 jQuery 找不到它的选择器,因为它在包含的文件中 (alerts.php
)。我认为是这样,因为如果我将警报代码直接放入主文件 admin-dashboard.php
一切正常。
提前致谢!
...问题与服务器有关。文件 alerts.php
没有正确的权限和正确的所有者。当你说它可能没有真正包含时,我注意到了它。
抱歉浪费大家的时间,谢谢大家!
听起来 reduceQuantity()
函数找不到模态元素,因为在解析 HTML 元素之前函数是 运行。这可能是因为您需要将 JQuery 包装在 $(document).ready(function(){})
中,或者您需要在 admin-dashboard.php
文件的末尾包含 Javascript(在结束 </body>
标签),然后将 alerts.php
放在顶部,以便在 Javascript 运行之前对其进行解析。您可能需要做这两件事。