【问题标题】:Array is empty after ajax success function [duplicate]ajax成功函数后数组为空[重复]
【发布时间】:2014-09-25 07:18:45
【问题描述】:

我是新手程序员,请原谅我的浅薄知识。

我正在尝试向服务器发送 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

【问题讨论】:

    标签: javascript php jquery arrays ajax


    【解决方案1】:

    那是因为 ajax 请求是异步运行的。

    您的$('#feedback').text('Hello ' + name[0]); 在 ajax 调用完成之前执行你应该使用 jquerys .promise().done(function(){ Promise

    【讨论】:

    • 哇!它已经起作用了。非常感谢!
    【解决方案2】:

    用作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-18
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多