1. clean function in controller :
//clecn all products in compare list
public function cleanajaxAction() {
$items = Mage::getResourceModel('catalog/product_compare_item_collection');
if (Mage::getSingleton('customer/session')->isLoggedIn()) {
$items->setCustomerId(Mage::getSingleton('customer/session')->getCustomerId());
} elseif ($this->_customerId) {
$items->setCustomerId($this->_customerId);
} else {
$items->setVisitorId(Mage::getSingleton('log/visitor')->getId());
}
/** @var $session Mage_Catalog_Model_Session */
$session = Mage::getSingleton('catalog/session');
try {
$items->clear();
Mage::helper('catalog/product_compare')->calculate();
echo json_encode(array('status'=>'1','msg'=>'clean compare products successed!'));
return;
}
catch (Exception $e){
//do nothing
echo json_encode(array('status'=>'2','msg'=>$this->__($e->getMessage())));
return;
}
}
2. jquery call it by ajax
//clean all ajax (function($){ $('#clean-link').click(function(){ var ajax_url = $(this).attr('to_url'); $.ajax({ url: ajax_url, type: "POST", dataType:"json", success: function(json_obj) { if(json_obj.status == 1) { $(".compare-a").removeClass("compared"); $(".clean-compare-box").hide(); } else { alert(json_obj.msg); } } }); }) })(jQuery);
3. html node:
<div class="clean-compare-box">
<a to_url="<?php echo $this->getUrl('catalog/product_compare/cleanajax');?>" id="clean-link" class="clean-compare-link" style="color: #000000; cursor:pointer;"><?php echo $this->__('clear all');?></a>
</div>