示例:我在第一个php脚本中的代码:
<?php
$a = array('green','yello','blue');
然后在我的第二个脚本中:
<?php
echo $a; //display the value based on my first script
jQuery-AJAX 链接了两个脚本
目的:
我的网页中有导航栏,有 3 个菜单/选项。单击其中一个菜单后,我将使用此代码$(this).closest('li').index()
将其索引发送到第二个脚本(正常工作)。然后第二个脚本将检查正在发送的索引的值。索引将用作数组的键...
问题:
在我的第二个脚本中无法获取$a
的值(数组)
注意:
我不能只使用一个脚本,因为我想对脚本进行分类.....这只是我项目的一小部分
PHP 变量始终仅在一个请求中可用。新请求意味着新的范围,并且在以前的脚本中设置的变量被遗忘了。要在多个请求中保留一个值,您可以使用示例会话。
带会话的解决方案
脚本 1
session_start();
$_SESSION['a'] = array('green','yello','blue');
脚本 2
session_start();
$a = array('green','yello','blue');
带有 require() 的解决方案
另一种选择是包含脚本 1,其中数组被声明并初始化为脚本 2(以及需要数组的所有其他脚本)。
脚本 1
$a = array();
脚本 2
require('script1.php');
$b = $a; // feel free to use the array $a here
将阵列传递到客户端并返回的解决方案
另一种解决方案(尽管很可能不是一个好的解决方案)是使用 json_encode($a)
将数组编码为 json,将其发送到客户端,然后在 ajax 请求中将数组发送回服务器到脚本 2。脚本 2 将使用 json_decode() 解析 json。