对于用户来说,每次单击“添加要比较”以将产品添加到比较列表中,我想等待页面重新加载似乎太麻烦了,我想使用复选框更改thelink,然后添加一个按钮,然后提交该按钮要比较的产品列表,然后将您发送到该页面。

做这个的最好方式是什么?

编辑:

我将发布我使用的代码,以便其他人将来可以使用它!

在每个产品中,我都有这样的复选框:

<input class="idcompare" type="checkbox" name="idcompare<?php echo $_product->getId();?>" value="<?php echo $_product->getId();?>">Compare

然后,我的表格带有将我发送到比较页面的按钮:

<form id="comparelist">
    <button type="button" title="<?php echo $this->__('Compare') ?>" class="button"><span><span><?php echo $this->__('Compare') ?></span></span></button>
</form>

我的JS将改变动作并提交表格! (我知道不是很优雅,但它起作用):

jQuery(document).ready(function() {
        jQuery('#comparelist .button').click(function(){

            var i=0;
            var prdString="";

            var prdString = jQuery.map(jQuery(':checkbox:checked'), function(n, i){
                  return n.value;
            }).join(',');


            var url='<?php echo Mage::getUrl('catalog/product_compare/index').'items/'; ?>'+ prdString + '/uenc/';
            jQuery('#comparelist').attr('action', url);
            jQuery('#comparelist').submit();
        });
    });
有帮助吗?

解决方案

为了添加产品以比较您需要以下URL:

<?php echo Mage::getBaseUrl() ?>index.php/catalog/product_compare/index/items/' + productID + '/uenc/'

您可以通过创建产品ID的逗号分开字符串同时添加多个项目以同时进行比较。

看起来像这样:

<?php echo Mage::getBaseUrl() ?>index.php/catalog/product_compare/index/items/10,23,456,8/uenc/'

基于此信息,您可以通过执行以下操作通过复选框设置此信息:

  • 创建一个 <form>
  • 为您想要比较的每个项目创建复选框
  • 设置 id 每个复选框到产品ID
  • 在复选框的OnClick事件中添加一些JS,该事件添加了 id 到逗号分隔
  • onSubmitform action 到这里:

    <?php echo Mage::getBaseUrl() ?>index.php/catalog/product_compare/index/items/' + prdString + '/uenc/'
    
许可以下: CC-BY-SA归因
scroll top