Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
每次我向Php数组发出ajax请求时,它都会被销毁和替换?_Php_Ajax_Arrays - Fatal编程技术网

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

每次我向Php数组发出ajax请求时,它都会被销毁和替换?,php,ajax,arrays,Php,Ajax,Arrays,点击一个按钮,我的php脚本就会收到一篇ajax文章,其中包含以下代码 <?php $number = $_POST["id"]; $myarray[$number] = $_POST["marker"]; ?> 两个POST条目是id和marker。我希望最终用户每次点击按钮都能构建一个越来越大的数组,称为$myarray,因为$number通常会发生变化 相反,每次单击按钮都会破坏原始的$myarray,并创建一个新的$myarray,其中只有一个数据对(新

点击一个按钮,我的php脚本就会收到一篇ajax文章,其中包含以下代码

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

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

相反,每次单击按钮都会破坏原始的
$myarray
,并创建一个新的
$myarray
,其中只有一个数据对(新发送的$number和
$\u POST[“marker”]


如何对其进行编码,以便通过每次单击按钮构建阵列?

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

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

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

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

您需要将其存储在会话中

基本上

session_start();

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

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

您需要将其存储在会话中

基本上

session_start();

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

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

使用javascript将数据推送到单击。然后尝试在每次单击时传递整个队列

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

啊,我不知道。我做了一些快速的谷歌搜索,将数组设置为全局变量或超级全局变量可以解决这个问题吗?如果是这样的话,我该怎么做呢?我明白。在这种情况下,我会将信息存储在cookie中,并在每次单击按钮并进行预匹配时更新cookie。这些信息并不敏感,只是用户在页面上的首选项。@James Nope(回答您的第一条评论)。全局变量也绑定在会话中,它们在会话结束时死亡。如果不想使用JS,可以尝试将数据存储在varialbes@James(第二条评论)Cookies作为解决方案适用于您的场景,并且$\u会话与Cookies相关(请阅读手册)。不管怎样,如果你愿意,你可以带着饼干去。啊,我不知道。我做了一些快速的谷歌搜索,将数组设置为全局变量或超级全局变量可以解决这个问题吗?如果是这样的话,我该怎么做呢?我明白。在这种情况下,我会将信息存储在cookie中,并在每次单击按钮并进行预匹配时更新cookie。这些信息并不敏感,只是用户在页面上的首选项。@James Nope(回答您的第一条评论)。全局变量也绑定在会话中,它们在会话结束时死亡。如果不想使用JS,可以尝试将数据存储在varialbes@James(第二条评论)Cookies作为解决方案适用于您的场景,并且$\u会话与Cookies相关(请阅读手册)。无论如何,如果你愿意,你可以带着饼干去。