在 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?! :) 我只是想确保这是要走的路
我正在使用 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?! :) 我只是想确保这是要走的路