使用prestashop的1.7 smarty url标签中的动作属性

问题描述:

我正在使用prestashop 1.7.2.1构建一个前端控制器模块。使用prestashop的1.7 smarty url标签中的动作属性

我想要做的是将smarty {url}标记添加到窗体的action属性。问题是,一旦我提交了表单中所有在from的action属性中提供的get参数被删除。这是html中的正常行为。

这是我的代码:

<form id="car-type-form" action="{url entity='module' name='tuxinmodcartype' controller='cartypeproducts'}" method="get"> 
    <div id="company-name-input-form-group" class="form-group row"> 
     <label for="company-name-input" class="col-sm-2 col-form-label">Company</label> 
     <div class="col-sm-10"> 
      <input type="text" class="form-control" id="company-name-input" name="company_name" placeholder="Company" aria-label="Company" required="required"/> 
     </div> 
    </div> 
... 
</form> 

总的来说,我可以在智者{url}标签粘贴到一个变量。在提交时将表单字段的值动态添加到我创建的变量中,并使用它重定向,而不是允许表单提交。

我只是不知道这是否是最好的解决方案。

也许有一些我错过了。

有什么想法?

谢谢

现在我所做的就是隐藏输入元素添加到基于创建的URL字符串形式。

我有这个在我的模板文件的第一行:

<script type="text/javascript"> 
    var carTypeProductsUrl='{url entity='module' name='tuxinmodcartype' controller='cartypeproducts'}'; 
</script> 

,并在提交功能添加以下代码:

... 
if (isError) { 
      event.preventDefault(); 
     } else { 
      $('.hidden-form-params').remove(); 
      var params = carTypeProductsUrl.substr(carTypeProductsUrl.indexOf('?')+1).split('&'); 
      params.forEach((paramStr)=>{ 
       var paramsArray = paramStr.split('='); 
       const paramKey = paramsArray[0]; 
       const paramvalue = paramsArray[1]; 
       $('#car-type-form').append(`<input type="hidden" name="${paramKey}" value="${paramvalue}" class="hidden-form-params" />`); 
      }); 
     } 

这种方法感觉有点..哈克? ! :)我只是想确保这是要走的路