【发布时间】:2023-03-17 20:49:01
【问题描述】:
<?php
$boxes = array
(
array("box1","w","pink"),
array("box2",".", "aqua")
);
if(isset($_POST['getBoxI'])) {
$ind = $_POST['getBoxI'];
echo $boxes[$ind][0].','.$boxes[$ind][1].','.$boxes[$ind][2].',';
}
if(isset($_POST['setBoxI'])) {
$ind = $_POST['setBoxI'];
$fill = $_POST['setBoxFill'];
$col = $_POST['setBoxCol'];
$boxes[$ind][1] = $fill;
$boxes[$ind][2] = $col;
echo $boxes[$ind][0].','.$boxes[$ind][1].','.$boxes[$ind][2].',';
}
?>
基本上,我正在尝试建立一个网站,让不同的用户可以单击框并输入信息,并且只要有人更改框的信息(例如文本或背景颜色),框就会“实时”更新。填写表格后,该信息将发送到服务器。表单使用“setBoxI”键通过 jQuery Posting 发送。客户端每 X 秒通过 jQuery Posting 更新页面到这个 php 文件,使用 'getBoxI' 键。
问题在于,即使您使用 setBoxI 键更新数组,下次使用 getBoxI 时,数组也会返回显示的默认值(“box1”、“w”、“pink”)而不是值用户输入的。
显然这不是存储此类数据的最佳方式。我相信这是因为每次调用这个 php 文件时,它都会打开一个新的文件副本,其中输入了默认数组,而不是用户通过 setBoxI 键创建的数组。
在只使用 nginx、jquery 和 php 的情况下,有什么更好的方法来完成此任务?
【问题讨论】:
标签: php jquery arrays ajax post