[英]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.