我正在开发一个模块,我想从tpl文件(cer.tpl)提交购物车。 下面是cer.tpl中表单的代码。
<form role="form" action="{$link->getPageLink('cart')|escape:'html':'UTF-8'}" method="post">
<div class="form-group">
<textarea class="form-control" rows="3" name="consulting_Info" id="consulting_Info"></textarea>
</div>
<p class="hidden">
<input type="hidden" name="token" value="{$static_token}" />
<input type="hidden" name="id_product" value="{$product->id|intval}" id="product_page_product_id" />
<input type="hidden" name="add" value=1 />
<input type="hidden" name="id_product_attribute" id="idCombination" value=1 />
<input type="text" name="qty" id="quantity_wanted" class="text" value=1 />
<input type="text" name="test" id="test" class="text" value="TestValue" />
</p>
<div class="no-print">
<button type="submit" name="Submit" class="exclusive">
</span>{l s='Add to cart'}</span>
</button>
</div>
我使用Tools :: getValue方法获取&#39; consulting_Info&#39;的值。领域。 在cartController.php中
public function init()
{
parent::init();
// Send noindex to avoid ghost carts by bots
header('X-Robots-Tag: noindex, nofollow', true);
// Get page main parameters
$this->id_product = (int)Tools::getValue('id_product', null);
$this->id_product_attribute = (int)Tools::getValue('id_product_attribute', Tools::getValue('ipa'));
$this->customization_id = (int)Tools::getValue('id_customization');
$this->qty = abs(Tools::getValue('qty', 1));
$this->id_address_delivery = (int)Tools::getValue('id_address_delivery');
**$this->consulting_Info = (int)Tools::getValue('consulting_Info');
$this->context->smarty->assign('consulting_Info', $consulting_Info);**
}
&#13;
最后,我在shopping-cart.tpl中写了{$ consulting_Info},它显示了付款页面,但它没有显示onsulting_Info字段中的值。
答案 0 :(得分:0)
其实你想把cart提交到cartController这是核心文件。我想你应该在prestashop的modules文件夹中创建一个新模块,然后就可以编写你的tpl文件了:
cer.tpl:
<p id=vss_buy_now" class="buttons_bottom_block no-print" style="margin-top:-210px">
<input type="button" name="vss_buy_now" value="{l s='Add to cart' mod='your_module_name'}" class="vss_left_col" id="vss_buy_now" style="background:{$background|escape:'htmlall':'UTF-8'};color:{$text|escape:'htmlall':'UTF-8'};border:{$border|escape:'htmlall':'UTF-8'};"/>
</p>
<script>
$( "#vss_buy_now" ).one( "click", function() {
var id_product_attribute = document.getElementById('idCombination').value;
var id_product = document.getElementById('product_page_product_id').value;
var quantity = document.getElementById('quantity_wanted').value;
$.post(
'{$link|escape:'quotes':'UTF-8'}',
{
id: id_product,
ipa: id_product_attribute,
qty: quantity
},
function (data) {
window.location.replace(data);
}
);
});
<script>
之后你必须在模块文件夹中制作一个前控制器,如:
C:\wamp\www\prestashop\modules\your_module_name\controllers\front
然后在其中创建一个名为:
的文件C:\wamp\www\prestashop\modules\your_module_name\controllers\front\your_module_name.php
然后在该文件中,您必须编写如下代码:
your_module_name.php // **请注意,它是控制器文件夹中的文件//
<?php
class Your_Module_NameYour_Module_NameModuleFrontController extends ModuleFrontController
{
public function initContent()
{
$qty = Tools::getValue('qty');
$id_product = Tools::getValue('id');
$id_product_attribute = Tools::getValue('ipa');
}
}
现在,在该文件中,您可以获得产品详细信息,并且可以执行操作。我希望它能为您提供帮助。