2016-07-05 7 views
1

Imユーザーがメジャーストアのボタンを押してVAT価格を表示および非表示にすると、jqueryクッキーを使用してクッキーをドロップします。クッキーが真か偽であるかどうかをテストするためにフロントエンドで次のMagentoのクッキーgetModelを使用して、その後トグルクッキーtrue false magento

$j('.nav-customer-vat a').click(function(){ 

    $j(this).text($j(this).text() == 'Show VAT' ? 'Hide VAT' : 'Show VAT'); 
    $j(this).toggleClass('active'); 

    if($j(this).text() == 'Show VAT'){ 
     console.log('show'); 
     $j.cookie("showVat", false, { path: '/' });  
    } else if($j(this).text() == 'Hide VAT'){ 
     $j.cookie('showVat', true) 
     console.log('hide'); 
    } 
} 

イム:

<?php $cookie = Mage::getModel('core/cookie')->get('showVat'); ?> 
     <?php if($cookie){ ?> 
     <a href="#" class="display-vat"><?php echo $this->__('Hide VAT'); ?></a> 
     <?php } else { ?> 
     <a href="#" class="display-vat"><?php echo $this->__('Show VAT'); ?></a> 
    <?php } ?> 

しかし、これが唯一のようだ

私の現在のjsがそうのようになります。それ以上に一度作業すると、クリックごとに常にfalseが返されます。なぜこれが原因であるかわかりません。どんな助けも素晴らしいだろう。

答えて

1

これは、Cookieが文字列として保存されるためです。文字列が "false"となります。と評価されます。実際の文字列値を設定して比較する必要があります。この記事で

詳細情報:jquery cookie set value to boolean true

+1

だからAximusを明確にするには真上、私はこれを変更するには何をしたかである以下の通りです:変更されたクッキーへ:$ j.cookie(「showVat」、「有効」 、{パス: '/'}); if($ j(this).text()== 'VAT表示'){$ j.cookie( "showVat"、 'disable'、{path: '/'}); \t} '次にphp <?php if($ cookie ==' enabled '?>ありがとうございます。 –

関連する問題