每次我向它发出ajax请求时,Php数组都会被销毁并替换掉吗?

时间:2011-05-28 18:06:46

标签: php ajax arrays

点击一个按钮,我的php脚本会发出ajax POST,其中包含以下代码

<?php
    $number = $_POST["id"];
    $myarray[$number] = $_POST["marker"];
?>

两个POST条目为idmarker。我希望最终用户每次点击按钮都会构建一个名为$myarray的越来越大的数组,因为$number通常会发生变化。

相反,每次点击按钮都会破坏原始$myarray并创建一个只有一个数据对的新$myarray(新发送的$ number和$_POST["marker"])。

我如何对其进行编码,以便每次单击按钮都可以构建数组?

3 个答案:

答案 0 :(得分:4)

HTTP是无状态协议,因此服务器无法在每次请求后了解$my_array。 PHP只生成一些HTML,服务器提供生成的HTML。 不过,您可以在javascript中将信息存储在客户端。

至于你的评论问题: 不,它不会。解决方案实际上取决于您的用例,如果您需要可供以后使用的信息,则必须将其存储在数据库或文件中。如果仅用于当前浏览页面,请使用javascript将其存储在用户的浏览器中。将其存储为会话变量是另一种选择。

答案 1 :(得分:1)

您需要将其存储在会话中。 Documentation

基本上,

session_start();

$myarray = $_SESSION['myarray'];
//work with $myarray here

//store it back in the session
$_SESSION['myarray'] = $myarray;

答案 2 :(得分:0)

使用javascript点击数据。然后尝试在每次点击时传递整个队列