如何在Ajax,PHP中传递变量

时间:2013-10-27 04:55:02

标签: php jquery ajax

我使用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? 
}

如果有人能告诉我如何解决它,或者有其他方法可以解决它,我将非常感激。

1 个答案:

答案 0 :(得分:0)

您的AJAX调用每个页面都会初始化一组新变量。您无法从连续调用中访问$ arrray,但您可以访问会话变量。

在页面顶部添加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变量的存在。