繁体   English   中英

Javascript在AJAX响应中声明全局变量

[英]Javascript declare a global variable within AJAX response

发送Ajax发布请求后,我得到一个数组作为响应。 我想在另一个函数中使用此数组,我尝试在设置变量值之前声明变量,而不将其放入任何函数中。

var their_Info = [];
    $.ajax({
            url: "My PHP url",
            type: "post",
            data: {username:usernames} ,
            success: function (response) {
               their_Info = JSON.parse(response);
            });

如果我想在一个单独的函数中使用them_Info,我将变得不确定。

以下是供参考的php脚本:

<?php
header('Access-Control-Allow-Origin: *');
$usernames = $_POST['username']; 
//$ids = join("','",$usernames); 
$link = mysqli_connect("localhost", "root", "vKukRKWZRE", "table");
$acc_Info = array();
foreach ($usernames as $value) {
    $query = "SELECT * FROM users WHERE username = '$value'";
    $show = mysqli_query($link, $query) or die("Error");
    while ($row = mysqli_fetch_array($show)) {
        array_push($acc_Info, explode(',', $row['wear']));
    }
}
echo json_encode($acc_Info);
?>

如果您尝试在AJAX完成之前使用their_Info ,则显然会返回undefined因为AJAX是异步的。

可能的解决方案

以数据为参数success调用函数。 这样,只有在AJAX完成后,您才可以使用响应

尽管注释了处理回调的正确方法,但是您可以使用window.their_info在全局范围内设置their_info变量。 虽然不是真的推荐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM