这是我第一次完全尝试使用ajax。我查遍了谷歌,似乎找不到答案。我什至不确定我想做的事情是否可行。
我正在尝试使用 mysql 表中的数据填充模式窗口。
使用下面的 JavaScript,我可以通过单击 HREF 在模式窗口中打印 DATA-ID:
<script type="text/javascript">
$(document).on("click", ".open-RestrictModal", function () {
var myId = $(this).data('id');
$(".modal-body #Id").val( myId );
});
</script>
我想在这段代码中添加运行 PHP/MySQL 查询、获取结果并将其打印在模式窗口中的功能。
我想我必须使用AJAX,但我不确定。如何向现有代码添加将 javascript 变量发送到 AJAX 页面并在模式窗口中返回结果的功能?
请帮忙。
最佳答案
看起来您甚至没有在这里使用 ajax,假设您使用的是 jQuery 库,您可以构建如下调用:
function some_ajax_call(your_param) {
$.ajax({
type: "POST", // We want to use POST when we request our PHP file
url : "some/url/to/your/file.php",
data : { query : your_param }, // passing an array to the PHP file with the param, value you passed, this could just be a single value i.e. data: your_param
cache: false, // disable the cache optional
// Success callback if the PHP executed
success: function(data) {
// do somethig - i.e. update your modal with the returned data object
$('.modal-body #id').val(data);
}
});
}
然后您可以编写 file.php
文件来处理查询
<?php
// Capture the variable we passed in via AJAX
$param = $_POST['query'];
// Build a query
$query = "SELECT * FROM some_table WHERE val ='" . $param . "'";
// I assume you know how to run a query, this would be fetching an assoc array
$results = $DB->run__query($query);
// Check we have some results, then echo back to the AJAX call
if(sizeof($results) > 0) {
echo $results;
}
如果我们有任何结果,则在 PHP 脚本末尾的 $results
数组中进行回显,将使用返回的行填充成功回调中的数据数组,然后您可以在中执行任何 DOM 操作更新模态的成功回调,希望这有帮助。
关于javascript - 使用 Ajax 运行 PHP 查询,以模式返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748848/