Php Ajax函数中的全局变量

Php Ajax函数中的全局变量,php,jquery,ajax,Php,Jquery,Ajax,我正在用jQuery学习Ajax方法。我这里有一个简单的代码。它是通过jQueryAjax方法从csv文件加载数据,并将其放入数组以供进一步使用。但似乎数组在Ajax函数之外丢失了,即使我首先将数组设置为全局数组 <!DOCTYPE html> <html> <head> <script type="text/javascript" src="js/jquery/jquery-1.10.2.min.js"></script> <s

我正在用jQuery学习Ajax方法。我这里有一个简单的代码。它是通过jQueryAjax方法从csv文件加载数据,并将其放入数组以供进一步使用。但似乎数组在Ajax函数之外丢失了,即使我首先将数组设置为全局数组

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/jquery/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var db=[];
$(document).ready(function(){
    $.ajax({
        url: 'loaddata.php',
        success: function(data){
            var arr = data.split('|');          
            for(var i=0; i<arr.length; i++){
                var miniArr = arr[i].split(',');
                db.push(miniArr);
            }
            printTest();    //work here         
        }
    });
    printTest();    //not working and collapse here 
});

function printTest(){
    document.getElementById('test').innerHTML += db;
}

</script>
</head>
<body>
<div id="test" />
</body>
</html> `

var db=[];
$(文档).ready(函数(){
$.ajax({
url:'loaddata.php',
成功:功能(数据){
var arr=data.split(“|”);
对于(var i=0;i


提前感谢。

您不能在此处调用第二个printTest()


作为记录,试着使用JSON来检索数据,这要容易得多。

第二个
printTest()
.ajax
参数所在的位置,因此存在语法错误。第一个调用之所以有效,是因为它位于
成功
回调中,并且由于ajax是异步的,因此在调用完成时调用它


如果您将
调用在AJAX调用之后,它将在AJAX调用启动后立即调用,而不是等到它完成,这是由于异步的原因。

首先-在
$.AJAX
参数中放入
printTest
时出现语法错误。@user2772441-不要这样做!不能保证AJAX调用会在该时间内完成ime,如果没有呢?你应该在
success
回调中处理它。通过javascript httpRequest方法,我可以检查条件httpRequest.status==200。在我继续程序的其他部分之前,有没有类似的方法来确保这个过程完成?这个线程应该有帮助:@user2772441
<?php
$database = file('database');
foreach($database as $item){
    if ($item===end($database))
        echo $item;
    else
        echo $item.'|';
}