在 from action 属性 中使用 prestashop 的 1.7 smarty url 标签

using prestashop's 1.7 smarty url tag in a from action property

我正在使用 prestashop 1.7.2.1 构建带有前端控制器的模块。

我想做的是将 smarty{url} 标记添加到表单的操作 属性 中。问题是,一旦我提交了表单,在 from 的操作 属性 中提供的所有获取参数都被删除了。这是 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" />`);
            });
        }

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