javascript - 使用 PHP/JS 执行操作

标签 javascript php pdo

为了帮助自学 PHP,我给自己安排了使用 PDO 更新旧 mysql_* 代码的任务。

这一切进展顺利,随着我的不断学习,我已经能够大大减少代码量。然而,我的研究在特定领域遇到了障碍。

目前,我们将项目记录在 ListView 中,每个项目都有一组“操作/选项”。这些操作中的每一个都链接到一个 PHP 文件,该文件运行少量代码,然后将您带回 ListView 。

这是一个例子:

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 - 我知道的“最佳实践”很少,并且想了解更多。

最佳答案

您可以考虑的一件事是 MVC 模式,其中页面调用将根据某些参数运行某些函数。成熟的 MVC 框架可能超出了该项目的需要,但模仿 Controller 调度当然是可行的。达到这种效果的东西可以工作(代码未经测试):

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

关于javascript - 使用 PHP/JS 执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25915563/

相关文章:

php - fatal error : Class 'App\PDO' not found in

php - 在 mysql 查询中使用 sha1 哈希更改密码搜索 ID

javascript - .load() [从第二页] 函数工作,但不从第二页加载 jquery

javascript - 我如何检测 Number 变量的变化?

php - 如何检查是否一个接一个地设置直到完成

PHP:分配新的 PDO 作为对象属性

javascript - 使用 onscroll 动态更改 div 的高度不起作用

javascript - Angularjs ng-click 在动态生成的列表标签中不起作用

PHP/cURL 发布,只返回页面,就好像没有发布一样

php - 为什么我的 SQL 插入语句无法通过我的 php 脚本执行?