Вход • Регистрация

Вывод данных в шаблон

  • 23 декабря 2016 г.
  • Доброго времени суток!
    Создал модуль который получает данные из формы, обрабатывает их и должен вернуть результат вычисления, который необходимо вывести в шаблоне формы.
    Данный шаблон подключил к странице. Форма выводиться. Но результат обработки никак не могу вывести в шаблоне.
    Ниже список файлов модуля и их содержание.
    Подскажите как можно вывести результат в шаблон после обработки.

    calculator.php
    Код
    class Calculator extends Controller
    {
    /**
    * Инициализация модуля
    *
    * @return void
    */
    public function init()
    {
    $this->result = $this->model->form();
    }


    /**
    * Обрабатывает полученные данные из формы
    *
    * @return void
    */
    public function action()
    {

    if(! empty($_POST["action"]))
    {
    switch($_POST["action"])
    {
    case 'recalc':
    return $this->action->recalc();

    }
    }
    }

    }


    calculator.model.php
    Код

    if (! defined('DIAFAN'))
    {
    $path = __FILE__; $i = 0;
    while(! file_exists($path.'/includes/404.php'))
    {
    if($i == 10) exit; $i++;
    $path = dirname($path);
    }
    include $path.'/includes/404.php';
    }

    class Calculator_model extends Model
    {
    /**
    * @return void
    */
    public function form()
    {

    $this->result['view'] = 'form';

    }
    }


    calculator.action.php
    Код

    class Calculator_action extends Action
    {
    /**
    * Пересчет суммы заказа
    *
    * @return void
    */
    public function recalc()
    {


    $this->result["test"]='TEST';


    }


    }


    calculator.view.form.php
    Код

    <form id="calc_form" class="ajax" name="calc_form" role="form" method="POST" action="">
    <input type="hidden" name="module" value="calculator">
    <input type="hidden" name="action" value="recalc">
    <table>
    <tbody>
    <tr style="height: 50px;">
    <td style="width: 40px; padding-bottom: 30px;"><span class="num">1</span></td>
    <td><span style="font-weight: 600;">Параметр 1</span></td>
    <td><input id="s1" name="s1" style="width: 50px; margin: 0px 10px;"> см.</td>
    <td></td>
    </tr>
    <tr style="height: 50px;">
    <td style="width: 40px; padding-bottom: 30px;"><span class="num">2</span></td>
    <td><span style="font-weight: 600;">Параметр 2</span></td>
    <td><input id="s2" name="s2" style="width: 50px; margin: 0px 10px;"> см.</td>
    <td></td>
    </tr>
    <tr style="height: 50px;">
    <td style="width: 40px; padding-bottom: 30px;"><span class="num">3</span></td>
    <td><span style="font-weight: 600;">Параметр 3</span></td>
    <td><input id="s3" name="s3" style="width: 50px; margin: 0px 10px;"> см.</td>
    <td></td>
    </tr>
    <tr style="height: 50px;">
    <td style="width: 40px; padding-bottom: 30px;"><span class="num">4</span></td>
    <td><span style="font-weight: 600;">Параметр 4</span></td>
    <td><input id="s4" name="s4" style="width: 50px; margin: 0px 10px;"> см.</td>
    <td></td>
    </tr>
    </tbody>
    </table>
    <input type="submit" style="width: 300px;font-size: 20px;" class="button" value="Расчитать">
    </form>
    <div>'.var_dump($result).'</div>
  • 26 декабря 2016 г. , редакция: 26 декабря 2016 г.
  • Ну и кто так делает?
    Код
    <div>'.var_dump($result).'</div>

    Форма в таком виде выводится до отправки запроса (введённых данных) а не после.
    Чтобы вывести результат ответа вам нужно использовать файл calculator.js какой нибудь.
    или правильно оформите конструкцию вывода результата, как описано в документации, а не
    Код
    $this->result["test"]='TEST';

    хотя бы так
    Код
    $this->result["data"] = array("test"=>'TEST')

    результат будет выведен в <div class="test"></div>
    • 26 декабря 2016 г.
    • Спасибо. Что-то я на этот раздел документации внимания вообще не обратил. А через <div>'.var_dump($result).'</div> пытался хоть что то получить . Впредь буду внимательнее читать документацию.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум