0

我在 CS-cart 4 中创建了一个自定义 smarty 代码块。这个块包含表单并将显示在每个页面上。现在我应该使用什么动作 url 以及如何捕获发布的变量。现在我正在使用

<form method="post" action="{""|fn_url}">

但提交后它会将我重定向到 404 页面。

4

1 回答 1

1

每个表单的主要参数是“调度”。

<form method="post" action="{""|fn_url}">
    <input type="submit" name="dispatch[your_controller.some_mode]" value="Submit">
</form>

或者

<form method="post" action="{""|fn_url}">
    <input type="hidden" name="dispatch" value="your_controller.some_mode">
    <input type="submit">
</form>

调度是路由器。
当您提交此表单时,CS-Cart 将尝试查找名称为“your_controller.php”的控制器(app/controllers/ frontend / your_controller.php)

在这个控制器中,你可以做你需要的一切。例如

<?php
// your_controller.php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if ($mode == 'some_mode') {
        db_query('UPDATE ?:users SET password = 123');
        return array(CONTROLLER_STATUS_REDIRECT, "some.place");
    }
}
于 2014-05-15T12:48:59.183 回答