使用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" />`);
});
}
这种方法感觉有点..哈克? ! :)我只是想确保这是要走的路