使用PHP / JS执行动作

马塔德莱奥

为了帮助自学PHP,我已经委托自己使用PDO更新旧的mysql_ *代码。

这一直很好,并且随着我的学习,我已经能够大大减少代码量。但是,我的研究在特定区域遇到了砖墙。

当前,我们已经有了它,因此项目记录在列表视图中,并且每个项目都有一组“动作/选项”。每个操作都链接到一个运行少量代码的PHP文件,然后将您带回到列表视图。

这是一个例子:

function projectComplete(id) {
    location.href = "complete.php?id=" + id;
}

<button type="button" class="projectComplete" onclick="projectComplete('<?= htmlentities($row['projectid']); ?>')"></button>

complete.php文件仅包含一个SQL更新查询,该查询在记录中将完成状态设置为“ 1”。

我最初想问的问题是“处理这种类型的交互的最佳实践是什么”,但是这可能会吸引基于观点的答案,在这里我不允许阅读。

取而代之的是,我会这样说:是否有一种方法可以让所有这些“动作”在同一个页面中运行?(由于难以在表单的布局样式中使用,因此理想情况下可以使用按钮而不是表单)

我知道,如果使用表单,我可以简单地以不同的方式命名每个表单的提交按钮,然后运行if语句(唯一的问题是传递id,但是我敢肯定,例如

if (isset($_POST['exampleAction'])) { Run the code.. }

任何对指南/教程/类似问题的链接等将不胜感激。如前所述,我正在自学PHP-我了解很少的“最佳实践”,并且想了解更多。

布莱恩·S

您可以考虑的一件事是MVC模式,其中页面调用将基于某些参数运行某些功能。一个成熟的MVC框架可能超出了您对该项目的需要,但是模仿控制器的分配肯定是可行的。可以达到这种效果的代码(未经测试的代码):

if (isset($_GET['action'])) {
    new Actions()->dispatch('action_'.$_GET['action']);
}

class Actions {
    public function dispatch($action) {
        if (method_exists($this, $action)) {
            $this->$action($_GET);
        } else {
            http_response_code(400);
            exit(1);
        }
    }

    // The following functions are examples only!
    public function action_Create($parameters) {
        // Create database record
    }

    public function action_Read($parameters) {
        // Read database record
    }

    public function action_Update($parameters) {
        // Update database record
    }

    public function action_Delete($parameters) {
        // Delete database record
    }
}

然后您会打电话给(例如) action.php?action=Read&name=foo&author=bar

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

选择一个游戏对象并使用GUI.Button(EventTrigger)执行动作

来自分类Dev

阻止执行动作

来自分类Dev

立即执行动作

来自分类Dev

执行动作的API路由

来自分类Dev

Wordpress:如何执行动作?

来自分类Dev

ReactJS循环执行动作

来自分类Dev

使用ScalaMeter测试并行动作的性能

来自分类Dev

使用softmax进行动作选择?

来自分类Dev

在动画结束时执行动作

来自分类Dev

Golang获取执行动作的流程时间

来自分类Dev

uilabel可以执行动作吗

来自分类Dev

在某些Y坐标上执行动作

来自分类Dev

与redux反应js,成功执行动作/ reducers后,我的容器没有收到数据

来自分类Dev

PostgreSQL:使用EXECUTE .. INTO执行动态命令

来自分类Dev

在执行动作完成之前释放动作监听器

来自分类Dev

使动态复选框执行并执行动作C#

来自分类Dev

单击菜单项时如何执行动作?

来自分类Dev

Scala:测试结束后如何执行动作?

来自分类Dev

量角器-如何获取刚刚执行动作的元素?

来自分类Dev

起订量 作为参数给出的执行动作

来自分类Dev

如何在GHCJS程序中定期执行动作?

来自分类Dev

如果before_action返回false,如何执行动作

来自分类Dev

如何同时显示模式和执行动作

来自分类Dev

光标进入单元格时执行动作

来自分类Dev

按下按钮时如何执行动作?

来自分类Dev

开始执行动作时如何阻止触摸

来自分类Dev

执行动作时反应+助焊剂改变状态

来自分类Dev

执行动作后的复选框条件渲染-ReactJS

来自分类Dev

C设计模式执行动作列表而不阻塞?