Как обработать форму в cs-cart 4

Я создал собственный блок умного кода в CS-cart 4. Этот блок содержит форму и будет отображаться на каждой странице. Теперь, какой URL-адрес действия я должен использовать и как я могу захватить размещенные переменные. Пока я использую

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

но после отправки он перенаправляет меня на страницу 404.


person TPSstar    schedule 22.04.2014    source источник


Ответы (1)


Основным параметром каждой формы является «отправка».

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

or

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

Dispatch is router.
При отправке этой формы 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");
    }
}
person Alexions    schedule 15.05.2014