我是一名新手程序员,所以请原谅我的浅薄知识。
我正在尝试向服务器发送ajax请求并使用数组显示它。但是,当我在外面使用我的数组时,它显示的数据是未定义的。我想知道是什么原因以及如何纠正我的代码。提前谢谢。
以下是我的JavaScript,PHP和HTML代码。
的JavaScript
var name = [];
$(window).load(function(){
$.ajax({
url: '../../PHP/admin/retrieve_elderly.php',
data: 'area_name=' + area_name,
type: 'POST',
dataType: 'json',
success: function(data){
for(var i = 0; i < data.length; i++){
name.push(data[i]);
}
}
});
$('#feedback').text('Hello ' + name[0]);
}
PHP
$area_name = $_POST['area_name'];
$name = array();
$sql_elderly = "SELECT * FROM elderly ORDER by name";
$query_elderly = mysql_query($sql_elderly);
while($rows = mysql_fetch_array($query_elderly)){
$name[] = $rows['name'];
}
echo json_encode($name);
HTML
<?php
include "../../PHP/connection.php";
if(isset($_GET['area_name'])){
$area_name = $_GET['area_name'];
$sql = "SELECT * FROM floorplan WHERE zone_name = '$area_name'";
$query = mysql_query($sql);
?>
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<div id = "feedback"></div>
<script type = "text/javascript" src = "../../JavaScript/jquery.js"></script>
<script type = "text/javascript" src = "../../JavaScript/setwifi.js"></script>
</body>
</html>
输出:
Hello undefined
答案 0 :(得分:1)
用作
var name = [];
$(window).load(function(){
$.ajax({
url: '../../PHP/admin/retrieve_elderly.php',
data: 'area_name=' + area_name,
type: 'POST',
dataType: 'json',
success: function(data){
for(var i = 0; i < data.length; i++){
name.push(data[i]);
}
$('#feedback').text('Hello ' + name[0]);
}
});
}
答案 1 :(得分:1)
这是因为ajax请求运行异步。
您的$('#feedback').text('Hello ' + name[0]);
在ajax调用完成之前执行你应该使用jquerys .promise().done(function(){
Promise