2013-11-27 230 views
2

* 阿賈克斯添加到購物車沒有更新的產品時的onclick行動結賬的購物車/繼續彈出,然後將其重定向到URL http://hostip.com/checkout/cart/ *阿賈克斯添加到購物車未將產品添加到購物車

我已經使用這個JavaScript

<script type="text/javascript"> 
    function setAjaxData(data,iframe){ 
      if(data.status == 'ERROR'){ 
       alert(data.message); 
      }else{ 
       if(jQuery('.block-cart')){ 
        jQuery('.block-cart').replaceWith(data.sidebar); 
       } 
    //   if(jQuery('.header .links')){ 
    //    jQuery('.header .links').replaceWith(data.toplink); 
    //   } 
       if(jQuery('.cart-top-container')){ 
        //jQuery('.cart-top-container').empty(); 
        jQuery('.cart-top-container').replaceWith(data.toplink); 
       } 
       var targetUrl='<?php echo Mage::getUrl('onestepcheckout') ?>'; 
       jQuery("#dialog-confirm").dialog({ 
        resizable: false, 
        //height:140, 
        modal: true, 
        buttons: { 
         "Checkout": function() { 
          window.location.href = targetUrl; 
          //jQuery(this).dialog("close"); 
         }, 
         "Continue Shopping": function() { 
          jQuery(this).dialog("close"); 
         } 
        } 
       }); 
      } 
     } 
     function setLocationAjax(url,id){ 
      url += 'isAjax/1'; 
      url = url.replace("checkout/cart","ajax/index"); 
      jQuery('#ajax_loader'+id).show(); 
      try { 
       jQuery.ajax({ 
        url : url, 
        dataType : 'json', 
        success : function(data) { 
         jQuery('#ajax_loader'+id).hide(); 
         setAjaxData(data,false);   
        } 
       }); 
      } catch (e) { 
      } 
     } 
    </script> 




*The form to submit is* 

<form action="<?php echo $this->getSubmitUrl($p) ?>" method="post" id="product_addtocart_form"<?php if ($p->getOptions()): ?> enctype="multipart/form-data"<?php endif; ?>> 
         <div class="home-prouduct-details"> 
          <?php $pid = $p->getId(); ?> 
          <?php $prod = Mage::getModel('catalog/product')->load($pid); ?> 
          <?php $html= $prod->getShortDescription(); ?> 
          <?php       
           $str = $html; 
           $matches = array(); 
           preg_match_all('#<div[^>]*>(.*?)</div>#', $str, $matches); 
//        print_r($matches[1][0]); 
          ?> 
          <a class="prod-name" href="<?php echo $prod->getProductUrl(); ?>"><?php echo $prod->getName(); ?></a> 
          <div class="prod-img"> 
           <a href="<?php echo $prod->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($prod, 'small_image'), null, true) ?>" class="product-image"> 
            <img src="<?php echo $this->helper('catalog/image')->init($prod, 'small_image')->resize(285,172); ?>" width="285" height="175" alt="<?php echo $this->stripTags($this->getImageLabel($prod, 'small_image'), null, true) ?>" /> 
           </a> 
          </div> 
          <div class="home-price-button"> 
           <?php $almost_gone_qty=$this->htmlEscape($prod->getData('almost_gone_qty')); ?> 
           <?php $qtyStock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($prod)->getQty(); ?> 
           <?php if (!$this->hasOptions() && strtotime($prod->getDealEndDate())>= Mage::getModel('core/date')->timestamp(time())):?> 
            <div style="clear:both;"></div> 
            <div class="add-to-box"> 
             <?php if($prod->isSaleable() && $qtyStock > $almost_gone_qty){ ?> 
              <p class="availability out-of-stock"> 
               <a onclick="setLocationAjax('<?php echo Mage::helper('checkout/cart')->getAddUrl($prod); ?>',<?php echo $prod->getId();?>)" title="Add To Cart"> 
                <img src="<?php echo $this->getSkinUrl('images/steamy.png'); ?>" title="Add To Cart" alt="Add To Cart" width="285" /> 
               </a> 
              </p> 
              <?php } else if($qtyStock <= $almost_gone_qty && $qtyStock!=0){?> 
               <p class="availability out-of-stock"> 
                <a onclick="setLocationAjax('<?php echo Mage::helper('checkout/cart')->getAddUrl($prod); ?>',<?php echo $prod->getId();?>)" title="Almost Gone"> 
                 <img src="<?php echo $this->getSkinUrl('images/almostgone.png'); ?>" title="Almost Gone" alt="Almost Gone" width="285" /> 
                </a> 
               </p> 
              <?php } else{ ?> 
               <p class="availability out-of-stock"> 
                <a href="<?php echo Mage::getBaseUrl(); ?>sold-out" title="Sold Out"> 
                 <img src="<?php echo $this->getSkinUrl('images/soldout.png'); ?>" width="285" /><?php //echo $this->__('Out of stock') ?> 
                </a> 
               </p> 
              <?php } ?> 
              <span id='ajax_loader<?php echo $prod->getId()?>' style='text-align: center; display:none'><img src='<?php echo $this->getSkinUrl('images/opc-ajax-loader.gif')?>'/></span> 
            </div>          
           <?php else : ?> 
            <p class="deal-has-ended"> 
             <a href="<?php echo Mage::getBaseUrl(); ?>sold-out" title="Sold Out"> 
              <img src="<?php echo $this->getSkinUrl('images/deal_ended.png'); ?>" width="285" /> 
             </a> 
            </p>         
           <?php endif; ?> 
            <?php echo $this->getChildHtml('addto') ?> 
            <?php //echo $this->getChildHtml('extra_buttons') ?> 
          </div> 
          <div class="home-price"> 
           <div class="home-prices"> 
            <?php 
             echo Mage::helper('core')->currency($prod->getPrice()); 
            ?>  
           </div> 
           <?php if($matches[1][1] !=""){ ?> 
            <div class="home-save"> 
             <?php 
              $savings = $matches[1][1]; 
              $savings = str_ireplace('Rs.', '&#8377;', $savings); 
              $savings = str_ireplace('Rs', '&#8377;', $savings); 
              echo $savings; 
             ?> 
             <?php //print_r($matches[1][1]); ?> 
             <div class="home-saver"> 
              savings 
             </div> 
            </div> 
           <?php } ?> 
           <div class="deal-endtime"> 
            <?php 
                echo "<div id='cdcontainer_".$prod->getId()."' class='cdcontainer'></div>"; 
                $dealEndDate = $prod->getDealEndDate(); 
                $dealEndDateParts = explode(" ", $dealEndDate); 
                $targetDateParts = explode("-", $dealEndDateParts[0]); 
                $year = $targetDateParts[0]; 
                $month = $targetDateParts[1]; 
                $date = $targetDateParts[2]; 

                $month_array = array(
                  "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" 
                ); 
                $month = $month_array[$month-1]; 

                $targetDate = "$month $date, $year ".$dealEndDateParts[1]; 
                $timer_text = Mage::getStoreConfig('homedeals/basic_settings/cd_display_text'); 
                $timer_end_text = Mage::getStoreConfig('homedeals/basic_settings/cd_end_text');  
                //echo $timer_end_text; 
                //echo date("Y-m-d H:i:s"); echo "<br/>"; 
                //echo $dealEndDate; 
                if($dealEndDate <= date("Y-m-d H:i:s")){ 
                ?> 
                <script type="text/javascript"> 
                  var launchdate_<?php echo $prod->getId(); ?>=new cdLocalTime("cdcontainer_<?php echo $_product->getId(); ?>", "server-php", 0, "", "", "<?php echo '<span><h1 style=color:red;>Deal has ended - 00:00:00</h1></span>' ?><?php //echo $timer_text; ?>", "<?php echo $timer_end_text; ?>", "<?php echo $prod->getId(); ?>"); 
                  launchdate_<?php echo $prod->getId(); ?>.displaycountdown("hours", formatresults2); 
                </script> 
                <?php }else { ?> 
                <script type="text/javascript"> 
                  var launchdate_<?php echo $prod->getId(); ?>=new cdLocalTime("cdcontainer_<?php echo $prod->getId(); ?>", "server-php", 0, "<?php echo $targetDate?>", "<?php print date("F d, Y H:i:s", Mage::getModel('core/date')->timestamp(time()))?>", "<?php echo $timer_text; ?>", "<?php echo $timer_end_text; ?>", "<?php echo $prod->getId(); ?>"); 

                  launchdate_<?php echo $prod->getId(); ?>.displaycountdown("hours", formatresults2); 
                </script> 
                <?php } ?> 
           </div> 
          </div> 
         </div> 
         <div id="dialog-confirm" style="display:none;"> 
          <?php echo $prod->getName();?> added to your cart Successfully. 
         </div> 
         </form> 
+0

你可以嘗試在瀏覽器控制檯來追蹤問題。那裏有什麼錯誤嗎? – bla0009

+0

嗨boban0987,setLocationAjax(url,id)調用無法將產品加載到購物車中時發生錯誤。我剛將magento 1.5.0.1升級到1.8.0。你能找到窗體或JavaScript中的任何錯誤嗎?感謝您回覆boban0987。 –

回答

0

請使用Magento的原型產品添加到購物車。

這裏是參考模塊。

http://www.excellencemagentoblog.com/magento-add-product-to-cart-ajax

+0

嗨Dharmesh Hariyani,你的擴展不支持與magento 1.8。我已經測試過它,你的擴展正在解決上述問題。請在magento 1.8上測試產品,社區正在等待。 –

+0

您可以自定義它。 –

+0

使用ajax將產品添加到購物車時出現了哪個錯誤? –

0
var data = jQuery('#product_addtocart_form').serialize(); 
       data += '&isAjax=1'; 
       jQuery('#ajax_loader').show(); 
       try { 
        jQuery.ajax({ 
          url: url, 
          dataType: 'json', 
          type : 'post', 
          data: data, 
          success: function(data){ 
+0

不工作。您是否發現要提交表單中的任何錯誤? –

+0

我現在收到此錯誤。 [17:14:12.188] GET http://ip-address.com/ajax/index/add/uenc/aHR0cDovLzE2Mi4yMDkuOTguMjE4Lw,,/product/651/form_key/cnDoUg3JY6sl5IBI/isAjax/1?&isAjax=1 [HTTP/1.1 500內部服務器錯誤595毫秒]。 –

0

你有沒有發送數據,如附加的圖像。

enter image description here

+0

編號我沒有包括數據:數據在jquery.ajax({但我有一個函數來收集數據在SetAjaxdata(數據,iframe)。 –

+0

我改變了我的代碼到函數setLocationAjax(url,id){var data = jQuery的( '#product_addtocart_form')。連載(); data + ='&isAjax = 1'; \t \t \t url + ='isAjax = 1'; url = url.replace(「checkout/cart」,「ajax/index」); jQuery('#ajax_loader'+ id).show(); 嘗試{ jQuery.ajax({ 網址:網址, 數據類型: 'JSON', 數據:數據, –

+0

但你需要PAASS所有形式的數據比你會得到數據veriable SetAjaxdata(數據,IFRAME)的 嘗試按照以前的評論中的附加圖片 –

相關問題