我有这个问题:
Javascript声明:
var OCUPARE_CULOARE =
jQuery.ajax({
type: 'post',
url: '/wp-content/themes/seopress/VerifiOcupareHARTA.php',
dataType: 'json',
data : {data : codparcela},
success: function(response) {
var OCUPARE_CULOARE1 = JSON.stringify(response);
alert (OCUPARE_CULOARE1);
}
});
var ALAAA = JSON.stringify(OCUPARE_CULOARE);
console.log (OCUPARE_CULOARE);
console.log (ALAAA);
PHP文件:
<?php
$res9= $_POST['data'];
global $wpdb;
$ocupate = $wpdb -> get_results("SELECT Cod FROM Ocupare_Cimitir WHERE Cod
LIKE '$res9%'");
echo (json_encode($ocupate));?>
主要问题是我想将php(json格式)的响应归因于javascript中的变量。
结果:
1)“console.log(OCUPARE_CULOARE)”返回:{readyState:1,setRequestHeader:ƒ,getAllResponseHeaders:ƒ,getResponseHeader:ƒ,overrideMimeType:ƒ,...}
2)“console.log(ALAAA);”返回:{“readyState”:1}
3)“alert(OCUPARE_CULOARE1);”返回我想要将其放入javascript中的变量:[{“Cod”:“F01R01L02”},{“Cod”:“ F01R01L10 “},{” 鳕鱼 “:” F01R01L12 “},{” 鳕鱼 “:” F01R01L13 “},{” 鳕鱼 “:” F01R01L15 “},{” 鳕鱼 “:” F01R02L12 “},{” 鳕鱼 “:” F01R10L10" }]
对不起,如果问题太容易了,但对我来说不是。
在过去的两天里,我读过关于ajax的异步调用,我真的无法让它工作。
答案 0 :(得分:1)
问题是ajax调用是异步的。这意味着在ajax调用之后执行将继续执行代码,即使调用尚未完成。
回调用于告诉异步操作异步操作完成后应该执行的操作。
function getDataFromServer(callback) {
jQuery.ajax({
type: 'post',
url: '/wp-content/themes/seopress/VerifiOcupareHARTA.php',
dataType: 'json',
data : {data : codparcela},
success: function (response) {
callback(JSON.stringify(response))
}
});
}
getDataFromServer(function (OCUPARE_CULOARE1) {
alert(OCUPARE_CULOARE1);
});
尽管Promise的解决方案似乎更加冗长,但稍后会有所回报,因为它可以很容易地组合异步函数。
function getDataFromServer() {
return new Promise(function (resolve, reject) {
jQuery.ajax({
type: 'post',
url: '/wp-content/themes/seopress/VerifiOcupareHARTA.php',
dataType: 'json',
data : {data : codparcela},
success: function (response) {
resolve(JSON.stringify(response));
}
});
});
}
getDataFromServer().then(function (OCUPARE_CULOARE1) {
alert(OCUPARE_CULOARE1);
});
如果您不需要支持各种浏览器(特别是旧版本),可以选择async / await。它看起来更清晰,并与Promise
互操作。请注意,您只能在async
函数内使用等待,这就是为什么在我的示例中我添加了函数doSomething
。
async function getDataFromServer() {
return new Promise(function (resolve, reject) {
jQuery.ajax({
type: 'post',
url: '/wp-content/themes/seopress/VerifiOcupareHARTA.php',
dataType: 'json',
data : {data : codparcela},
success: function (response) {
resolve(JSON.stringify(response));
}
});
});
}
async function doSomething() {
const OCUPARE_CULOARE1 = await getDataFromServer();
alert(OCUPARE_CULOARE1);
}
doSomething();
答案 1 :(得分:-1)
最好将ajax进程转换为javascript函数,并在成功时返回结果,或者如果ajax进程不起作用则返回false。 谢谢你,如果没有问题,你将得到你的php文件的结果,如果ajax不工作你可以输入错误。