AJAX查询成功时如何调用PHP函数
How to call PHP function when AJAX query success
我在我的项目中使用了 AJAX。下面的代码。
$.ajax({
type: 'POST',
data: ...,
success: function(data) {<?php calc(); ?>},
error: function(jqXhr, textStatus, errorMessage) {
console.log('Error' + errorMessage);
}
});
我需要在同一页面上获取数据而无需重新加载任何页面,这就是为什么我不在 AJAX 中使用 url 的原因。当 AJAX 成功时,我想触发名为 calc 的函数。 calc 函数中的计算,基于来自 ajax 的数据,还有一些涉及这些计算的数据库查询,这就是为什么我必须使用 PHP 函数。但是当我尝试我的代码时,计算函数不会等待成功。直接触发就好了
怎么了我听不懂。我该如何处理这种情况。提前致谢!
它并不像您描述的那样工作。你不能像这样弄乱 JS 和 PHP 部分。
当您编写类似 <?php calc(); ?>
的内容时,它总是会在生成页面时(在开始时)被调用,并且结果将作为纯文本包含在您插入该代码的确切位置。
你想要做的是在某些条件下(比如在你的 $ajax 调用成功之后)将 calc()
结果获取到页面。您需要向另一个 PHP 脚本发出额外的 $ajax 请求,该脚本将调用 calc()
函数并输出结果。
所以你需要把东西分成 JavaScript 部分和 PHP 部分,像这样:
function getResultOfCalc(callback){
$.ajax({
url: "calc_php_script.php"
type: 'GET',
success: function(data) {
//send received data to callback function
callback(data);
},
});
}
//Next your code
$.ajax({
type: 'POST',
data: ...,
success: function(data) {
getResultOfCalc(function(calcResult){
//here you get your calc data after your initial ajax is success
console.log(calcResult);
});
},
error: function(jqXhr, textStatus, errorMessage) {
console.log('Error' + errorMessage);
}
});
然后您的 php 脚本必须命名为 calc_php_script.php
echo calc();
根据 calc() 的输出,您可能希望将 calc() 结果编码为 JSON:
echo json_encode(calc());
我在我的项目中使用了 AJAX。下面的代码。
$.ajax({
type: 'POST',
data: ...,
success: function(data) {<?php calc(); ?>},
error: function(jqXhr, textStatus, errorMessage) {
console.log('Error' + errorMessage);
}
});
我需要在同一页面上获取数据而无需重新加载任何页面,这就是为什么我不在 AJAX 中使用 url 的原因。当 AJAX 成功时,我想触发名为 calc 的函数。 calc 函数中的计算,基于来自 ajax 的数据,还有一些涉及这些计算的数据库查询,这就是为什么我必须使用 PHP 函数。但是当我尝试我的代码时,计算函数不会等待成功。直接触发就好了
怎么了我听不懂。我该如何处理这种情况。提前致谢!
它并不像您描述的那样工作。你不能像这样弄乱 JS 和 PHP 部分。
当您编写类似 <?php calc(); ?>
的内容时,它总是会在生成页面时(在开始时)被调用,并且结果将作为纯文本包含在您插入该代码的确切位置。
你想要做的是在某些条件下(比如在你的 $ajax 调用成功之后)将 calc()
结果获取到页面。您需要向另一个 PHP 脚本发出额外的 $ajax 请求,该脚本将调用 calc()
函数并输出结果。
所以你需要把东西分成 JavaScript 部分和 PHP 部分,像这样:
function getResultOfCalc(callback){
$.ajax({
url: "calc_php_script.php"
type: 'GET',
success: function(data) {
//send received data to callback function
callback(data);
},
});
}
//Next your code
$.ajax({
type: 'POST',
data: ...,
success: function(data) {
getResultOfCalc(function(calcResult){
//here you get your calc data after your initial ajax is success
console.log(calcResult);
});
},
error: function(jqXhr, textStatus, errorMessage) {
console.log('Error' + errorMessage);
}
});
然后您的 php 脚本必须命名为 calc_php_script.php
echo calc();
根据 calc() 的输出,您可能希望将 calc() 结果编码为 JSON:
echo json_encode(calc());