阿贾克斯添加到购物车不加入产品至购物车 [英] Ajax add to cart is not adding products to the cart

查看:127
本文介绍了阿贾克斯添加到购物车不加入产品至购物车的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

*的阿贾克斯添加到购物车没有更新的产品时的onclick行动结账购物车/继续弹出,然后将其重定向到URL的 http://hostip.com/checkout/cart/ *

我用这个JavaScript

 <脚本类型=文/ JavaScript的>
    功能setAjaxData(数据,IFRAME){
            如果(data.status =='错误'){
                警报(data.message);
            }其他{
                如果(jQuery的('。块车')){
                    jQuery的(块车。)replaceWith(data.sidebar)。
                }
    //如果(jQuery的('。头.links')){
    // jQuery的('。头.links)replaceWith(data.toplink)。
    //}
                如果(jQuery的('。购物顶容器')){
                    // jQuery的('车机上的容器中。),空()。
                    jQuery的('车顶部容器。')replaceWith(data.toplink)。
                }
                VAR TargetURL中='< PHP的echo法师::的getURL(onestepcheckout')>?;
                jQuery的(#对话,确认).dialog({
                    可调整大小:假的,
                    //高度:140,
                    模式:真正的,
                    按钮:{
                        结帐:函数(){
                            window.location.href = TargetURL的;
                            // jQuery的(本).dialog(亲密);
                        },
                        继续购物:函数(){
                            jQuery的(本).dialog(亲密);
                        }
                    }
                });
            }
        }
        功能setLocationAjax(URL,ID){
            URL + ='isAjax / 1';
            URL = url.replace(结帐/车,AJAX /指数);
            jQuery的('#ajax_loader'+ id)的.show();
            尝试 {
                jQuery.ajax({
                    网址:网址,
                    数据类型:JSON,
                    成功:功能(数据){
                        jQuery的('#ajax_loader'+ id)的.hide();
                        setAjaxData(数据,FALSE);
                    }
                });
            }赶上(五){
            }
        }
    < / SCRIPT>




*提交表单是*

<形式的行动=< PHP的echo $这个 - > getSubmitUrl($ P)>?方法=后ID =product_addtocart_form<如果PHP($ P-> getOptions()):??> ENCTYPE =的multipart / form-data的< PHP ENDIF; ?>>
                        < D​​IV CLASS =家选取产品 - 详细信息>
                            < PHP $ PID = $ P->的getId(); ?>
                            ?< PHP $督促=法师:: getModel('目录/产品) - >负载($ PID); ?>
                            < PHP $的HTML = $的精良> getShortDescription(); ?>
                            < PHP
                               $海峡= $ HTML;
                               $匹配=阵列();
                               preg_match_all('#< D​​IV [^>] *>。(*)< / DIV>#',$海峡,$匹配);
//的print_r($匹配[1] [0]);
                            ?>
                            <一类=督促名的href =< PHP的echo $的精良> getProductUrl();?>>< PHP的echo $的精良>的getName(); ?>&所述; / a取代;
                            < D​​IV CLASS =PROD-IMG>
                                < A HREF =< PHP的echo $的精良> getProductUrl()>?标题=< PHP的echo $这个 - > stripTags($这个 - > getImageLabel($督促,'small_image),空,真)>?类=产品形象>
                                    < IMG SRC =?< PHP的echo $这个 - >帮手(目录/图像) - >的init($督促,'small_image') - >调整(285172);>? WIDTH =285HEIGHT =175ALT =< PHP的echo $这个 - > stripTags($这个 - > getImageLabel($督促,'small_image),空,真)>? />
                                &所述; / a取代;
                            < / DIV>
                            < D​​IV CLASS =住房价格键>
                                < PHP $ almost_gone_qty = $这个 - > htmlEscape($的精良>的getData('almost_gone_qty')); ?>
                                ?< PHP $ qtyStock =法师:: getModel('cataloginventory / stock_item') - > loadByProduct($ PROD) - > getQty(); ?>
                                ?&所述; PHP的若($这 - > hasOptions()&安培;&安培;的strtotime($的精良> getDealEndDate())> =法师:: getModel('芯/日期') - >!时间戳(时间?())):>
                                    < D​​IV的风格=明确:既;>< / DIV>
                                    < D​​IV CLASS =添加到盒>
                                        &所述; PHP的若($的精良> isSaleable()&安培;&安培; $ qtyStock> $ almost_gone_qty)?{>
                                            &其中,P类=可用性外的股票>
                                                <一的onclick =setLocationAjax('< PHP的echo法师::帮手(?'结帐/车') - > getAddUrl($ PROD);>'?,< PHP的echo $的精良>的getId ();?>)称号=放入购物车>
                                                    < IMG SRC =< PHP的echo $这个 - > getSkinUrl(图像/ steamy.png');?>中标题=放入购物车ALT =放入购物车WIDTH =285/>
                                                &所述; / a取代;
                                            &所述; / P>
                                            < PHP}否则,如果($ qtyStock< = $ almost_gone_qty和放大器;&安培;!$ qtyStock = 0){>
                                                &其中,P类=可用性外的股票>
                                                    <一的onclick =setLocationAjax('< PHP的echo法师::帮手(?'结帐/车') - > getAddUrl($ PROD);>'?,< PHP的echo $的精良>的getId ();?>)称号=几乎消失了>
                                                        < IMG SRC =< PHP的echo $这个 - > getSkinUrl(图像/ almostgone.png');?>中标题=几乎消失了ALT =几乎消失了WIDTH =285/>
                                                    &所述; / a取代;
                                                &所述; / P>
                                            < PHP}其他{&GT?;
                                                &其中,P类=可用性外的股票>
                                                    < A HREF =< PHP的echo法师:: getBaseUrl();?>满座称号=售完>
                                                        < IMG SRC =< PHP的echo $这个 - > getSkinUrl(图像/ soldout.png');?>中WIDTH =285/>< // PHP的回声$这个 - >?__('缺货')>
                                                    &所述; / a取代;
                                                &所述; / P>
                                            < PHP}&GT?;
                                            <跨度ID ='ajax_loader<?PHP的echo $的精良>的getId()>?风格=文本对齐:中心;显示:无'>< IMG SRC ='< PHP的echo $这个 - > getSkinUrl(图像/ OPC-AJAX-loader.gif)>/>< / SPAN>?
                                    < / DIV>
                                < PHP的东西:??>
                                    &其中,P类=并购交易已经端>
                                        < A HREF =< PHP的echo法师:: getBaseUrl();?>满座称号=售完>
                                            < IMG SRC =< PHP的echo $这个 - > getSkinUrl(图像/ deal_ended.png');?>中WIDTH =285/>
                                        &所述; / a取代;
                                    &所述; / P>
                                < PHP ENDIF; ?>
                                    <?PHP的echo $这个 - >直到最底层(AddTo就')&GT?;
                                    < // PHP的回声$这个 - >直到最底层(extra_buttons')&GT?;
                            < / DIV>
                            < D​​IV CLASS =住房价格>
                                < D​​IV CLASS =家价格>
                                    < PHP
                                        回声法师::帮手(核心) - >货币($的精良>用getPrice());
                                    ?>
                                < / DIV>
                                &其中;如果PHP($匹配[1] [1] =!){&GT?;
                                    < D​​IV CLASS =家保存>
                                        < PHP
                                            $节省= $匹配[1] [1];
                                            $储蓄= str_ireplace('卢比。','和;#8377;',$储蓄);
                                            $积蓄= str_ireplace('中,Rs','&安培;#8377;',$储蓄);
                                            回声$节约;
                                        ?>
                                        &所述; //的PHP的print_r($匹配[1] [1]); ?>
                                        < D​​IV CLASS =家用节电器>
                                            储
                                        < / DIV>
                                    < / DIV>
                                < PHP}&GT?;
                                < D​​IV CLASS =并购交易结束时间>
                                    < PHP
                                                    回声< D​​IV ID ='_ cdcontainer$的精良>的getId()。'类='cdcontainer'>< / DIV>中;
                                                    $ dealEndDate = $的精良> getDealEndDate();
                                                    $ dealEndDateParts =爆炸(,$ dealEndDate);
                                                    $ targetDateParts =爆炸( - ,$ dealEndDateParts [0]);
                                                    $一年= $ targetDateParts [0];
                                                    $本月= $ targetDateParts [1];
                                                    $日期= $ targetDateParts [2];

                                                    $ month_array =阵列(
                                                            月,月,月,月,日,月,七五,八五,九五,十月,月,月
                                                    );
                                                    $个月= $ month_array [$一个月-1];

                                                    。$ targetDate =$月$日,$年$ dealEndDateParts [1];
                                                    $ timer_text =法师:: getStoreConfig('homedeals / basic_settings / cd_display_text');
                                                    $ timer_end_text =法师:: getStoreConfig('homedeals / basic_settings / cd_end_text');
                                                    //回声$ timer_end_text;
                                                    //回声日期(Y-M-D H:我:秒);回声< BR />中;
                                                    //回声$ dealEndDate;
                                                    如果($ dealEndDate< =日期(Y-M-D H:我:秒)){
                                                    ?>
                                                    <脚本类型=文/ JavaScript的>
                                                            VAR launchdate_<?PHP的echo $的精良>的getId(); ?> =新cdLocalTime(cdcontainer_<?PHP的echo $ _product->的getId();?>中,服务器PHP,0,,,< PHP的echo'<跨度>< H1风格=颜色:红色;>交易已经结束 -  00:00:00< / H1>< / SPAN>'>< PHP //回声$ timer_text;>中,??? < PHP的echo $ timer_end_text;>中,< PHP的echo $的精良>的getId();?>中);
                                                            launchdate_<?PHP的echo $的精良>的getId(); ?> .displaycountdown(小时,formatresults2);
                                                    < / SCRIPT>
                                                    < PHP}其他{&GT?;
                                                    <脚本类型=文/ JavaScript的>
                                                            VAR launchdate_<?PHP的echo $的精良>的getId(); ?> =新cdLocalTime(cdcontainer_<?PHP的echo $的精良>的getId();?>中,服务器PHP,0,< PHP的echo $ targetDate>,&LT ?; PHP的打印日期(F D,YH:我:秒,法师:: getModel('核心/日期) - >时间戳(时间()))?>中,< PHP的echo $ timer_text;>中,< PHP的echo $ timer_end_text;>中,< PHP的echo $的精良>的getId();?>中);

                                                            launchdate_<?PHP的echo $的精良>的getId(); ?> .displaycountdown(小时,formatresults2);
                                                    < / SCRIPT>
                                                    < PHP}&GT?;
                                < / DIV>
                            < / DIV>
                        < / DIV>
                        < D​​IV ID =对话框中,确认的风格=显示:无;>
                            <?PHP的echo $的精良>的getName();?>添加到您的购物车成功。
                        < / DIV>
                        < /形式GT;
 

解决方案

你有没有发送数据,如附加的图像。

*Ajax add to cart is not updating the product to the shopping cart upon onclick action checkout/continue in the popup and then it redirects to the URL http://hostip.com/checkout/cart/ *

I had used this 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>

解决方案

Have you sent data like attached image.

这篇关于阿贾克斯添加到购物车不加入产品至购物车的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆