0

我使用 PHP 快一年了,但是我遇到了一个困扰我几天的问题。正如我们所知,我们可以使用 Ajax 将变量传递给 PHP,然后获取响应以供显示。但是我怎样才能从一个代码块中获取变量到花药呢?好吧,让我在代码中描述我的问题。因为我的代码体积很大,所以这里只放一个简化版。

<?php
  $array = [1,2,3,4,5];
//first Ajax call
if(isset($_POST['id'])){
    $id = $_POST['id'];
    $value= $_POST['value'];
    $array[$id] = value; //The first call is mainly to update the value of $array
    echo $value;
    exit();
}

//Second Ajax call
if(isset($_POST['name'])){
     print_r($array);   //I want to use $array here, but I got the original 
     .....              //one.So what should I do to get the updated $array 
                        //from last Ajax call? 
}

如果有人能告诉我如何解决它,或者也许有另一种方法可以得到它,我将非常感激。

4

1 回答 1

0

您对页面的 AJAX 调用每次都会初始化一组新的变量。您无法通过连续调用访问 $array,但您可以访问会话变量。

session_start();在页面顶部添加,然后

<?php
//first Ajax call
if(isset($_POST['id'])){
     $_SESSION['id'] = $_POST['id'];
     $_SESSION['value'] = $_POST['value'];         //The first call is mainly to update the value of $array
     echo $_SESSION['value'];
     exit();
}

//Second Ajax call
if(isset($_POST['name'])){
    echo $_SESSION['id'],"<br>";
    echo $_SESSION['value'],"<br>";
}

注意:此代码段对可能不合理的执行顺序进行了假设。对于生产代码,您应该在使用它们之前测试$_POST和变量的存在。$_SESSION

于 2013-10-27T05:05:33.887 回答