質問

ユーザーが「Compare」をクリックするたびにページリロードを待たなければならないのは面倒です。製品を比較リストに追加し、チェックボックスで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/'

この情報に基づいて、以下を実行してチェックボックスでこれを設定できます。

  • aを作成します <form>
  • 比較できるアイテムごとにチェックボックスを作成する
  • をセットする id 各チェックボックスの製品のIDへ
  • を追加するチェックボックスのオンクリックイベントにJSを追加する id コンマを分離したスリングに
  • onSubmit 持っている form action ここに行きます:

    <?php echo Mage::getBaseUrl() ?>index.php/catalog/product_compare/index/items/' + prdString + '/uenc/'
    
ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top