将jvectormap连接到ajax访问的数据库

时间:2017-11-10 20:28:48

标签: javascript php jquery json ajax

我有这个问题:

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的异步调用,我真的无法让它工作。

2 个答案:

答案 0 :(得分:1)

问题是ajax调用是异步的。这意味着在ajax调用之后执行将继续执行代码,即使调用尚未完成。

解决方案1(回调)

回调用于告诉异步操作异步操作完成后应该执行的操作。

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);
});

解决方案2(承诺)

尽管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);
});

解决方案3(异步/等待)

如果您不需要支持各种浏览器(特别是旧版本),可以选择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不工作你可以输入错误。