Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.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
Javascript PHP+;JS应用程序结构_Javascript_Php_Web - Fatal编程技术网

Javascript PHP+;JS应用程序结构

Javascript PHP+;JS应用程序结构,javascript,php,web,Javascript,Php,Web,我想知道如何管理应用程序中的数据 现在是这样, javascript脚本触发post查询,该查询在页面加载后传递{“init”:1},然后每隔N秒向同一文件触发一次{“update”:1},并将返回值打印到页面 我目前拥有的(代码是近似值,只是为了明确起见): if(isset($\u POST[“init”])){ $a=新的a(); $a->set(5); }elseif(isset($\u POST[“更新”])){ $a->update(); 返回$a->get(); } 但是这不起

我想知道如何管理应用程序中的数据

现在是这样,

javascript脚本触发post查询,该查询在页面加载后传递
{“init”:1}
,然后每隔N秒向同一文件触发一次
{“update”:1}
,并将返回值打印到页面

我目前拥有的(代码是近似值,只是为了明确起见):

if(isset($\u POST[“init”])){
$a=新的a();
$a->set(5);
}elseif(isset($\u POST[“更新”])){
$a->update();
返回$a->get();
} 
但是这不起作用,因为它说当我尝试更新时没有
$a
。我尝试过使它成为
全局的
静态的
,但都没有效果


我该怎么办?我该如何处理这个问题

在更新之前,您需要按$id查找$a,例如:

if(isset($_POST["init"])) {
    $a = new A();
    $a->set(5);
} elseif (isset($_POST["update"])) {
    $a = A->findById($_POST["id"]);
    $a->update(); 
    return $a->get();
} 

还请注意,从用户处获取数据而不进行筛选是一种不好的做法。

在代码中,您无权访问$a。如果设置了更新,您还应该发送$a数据,以便它能够工作
您还可以使用$\u会话变量跨这些页面获取$a,并且它将仅在服务器端进行管理

session_start();
if(isset($_POST["init"])) {
    $a = new A();
    $a->set(5);
    $_SESSION['a'] = $a
} elseif (isset($_POST["update"])) {
    $a = $_SESSION['a'];
    $a->update(); 
    $_SESSION['a'] = $a;
} 

我写的行比需要的多,所以你能很好地理解我在做什么。

不,不,我想把它都放在服务器端。可能吗?在我的例子中,我收到的唯一用户信息是post查询。我的意思是我写了更多需要的行,你可以:$\u SESSION['a']->update();例如,你应该明确说明。我的解释不好,因为这不是我的母语,仅此而已:)现在这样更好了。我只会将变量名放在反勾号之间。另外,
会话
应该是
$\u会话
。别忘了提及浏览器需要支持cookies,仅此而已!