我使用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?
}
如果有人能告诉我如何解决它,或者有其他方法可以解决它,我将非常感激。
答案 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
变量的存在。