Prestashop: передача данных из файла js в контроллер на пользовательскую страницу - PullRequest
0 голосов
/ 08 апреля 2019

У меня проблемы с передачей значения из моего личного js контроллеру и восстановлением его на личной странице tpl.

Этот модуль будет использоваться для настройки продукта после выбора и заполнения полей.

Выборки переходят от вкладок к вкладкам. Проблема в том, что я не могу получить значение {$ var}

У меня есть:

  • JS в root-> modules-> modulename-> views-> js-> namejsfile.js
  • КОНТРОЛЛЕР в root-> modules-> modulename-> controllers-> front-> controllername.php
  • ПРОСМОТР в root-> modules-> modulename-> views-> templates-> front-> filename.tpl

в JS

$('#send').click(function(){
            var ciao = 'cioaa';
            var myUrl = prestashop.urls.base_url + 'index.php?fc=module&module=configuratore';
            $.ajax({
                type: 'get',
                cache:false,
                url: myUrl,
                data: {
                    ajax: true,
                    datas:ciao,
                    action: 'fromAjax',
                },
          })
          .done(function() {
            console.log('Success!');
          })
          .fail(function() {
            console.log('error');
          });
});

в PHP

class ConfiguratoreTaskModuleFrontController extends ModuleFrontController
{
    public function __construct()
    {
        parent::__construct();
    }

    public function init()
    {
        parent::init();
    }

    public function initContent()
    {


        parent::initContent();
        $this->setTemplate('module:configuratore/views/templates/front/task.tpl');
    }
    $this->fromAjax();
}

public function fromAjax()
{
    $mVar = Tools::getValue('datas');
    return   $this->context->smarty->assign(array('var'=>$mVar));
}

в TPL

{$var}

1 Ответ

0 голосов
/ 09 апреля 2019
<?

public function fromAjax()
{
    $mVar = Tools::getValue('datas');
    $this->context->smarty->assign(array('var'=>$mVar));
    $templateFile = 'module:configuratore/views/templates/front/task.tpl';
    $html = $this->fetch($templateFile);
    die($html); // pass to JS
}

в JS:

.done(function(html) {
        console.log(html);
      })
...