Magento clean all product in compare list ajax function

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>

 

你可能感兴趣的:(function)