发送Ajax发布请求后,我得到一个数组作为响应。我想在另一个函数中使用这个数组,我试图在设置它的值之前声明变量而不将它放在任何函数中。
var their_Info = [];
$.ajax({
url: "My PHP url",
type: "post",
data: {username:usernames} ,
success: function (response) {
their_Info = JSON.parse(response);
});
如果我想在一个单独的函数中使用his_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);
?>
答案 0 :(得分:0)
如果您在AJAX完成之前尝试使用their_Info
,它显然会返回undefined
,因为AJAX是异步的。
可能的解决方案
使用数据作为参数在success
内调用您的函数。这样,只有在AJAX完成后才会使用响应
答案 1 :(得分:0)
尽管对处理回调的正确方法有评论,但您可以使用window.their_info
在全局范围内设置their_info
变量。不过真的不推荐。