【问题标题】:AJAX example in magentoMagento 中的 AJAX 示例
【发布时间】:2015-08-16 06:01:37
【问题描述】:

大家好,

我是 Magento 的新手。我想在 Magento 中学习 **ajax 过程。** 谁能通过一个简单的例子帮助我理解 Magento 中的 ajax? 您的帮助将不胜感激。

【问题讨论】:

    标签: ajax magento-1.9


    【解决方案1】:

    我给你一个简单的例子。要在 Magento 中使用基本的 jQuery Ajax,您需要在 phtml 页面和控制器中工作。 只需在 phtml 页面中添加脚本:

    <script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery(".like-result").click(function() {
                //alert(this.id);
                var id = this.id;
                //alert(custid);
                jQuery(".notify-status").hide();
                jQuery(".notify-loader").show();
                jQuery.ajax({      
                type: "POST",
                data: 'pid=' + id,
                url:'http://192.168.2.3/subhranil-demo/blog/index/likecount',
                success:function(response){                       
                    if (response) {
                        jQuery(".notify-loader").hide();
                        jQuery(".notify-status").show();
                        jQuery("#un"+id).html(response);
                    }
                }
                });
            });
         });
    </script>
    

    在上面的 jQuery.ajax 脚本中,您还可以看到类型、数据、url。 type 用于发送过程,如 POST 或 GET;在数据中,您将向控制者发送信息;在 URL 中,您可以声明控制器路径。在这里,我有一个“博客”模块,我在“索引”控制器下编写了公共函数,并给出了函数名称“likecount”。同样在这里我的基本路径是http://192.168.2.3/subhranil-demo/。因此,我将 URL 的链接添加为以下结构:http://192.168.2.3/subhranil-demo/blog/index/likecount。 现在我转到我的控制器的博客模块文件夹中的“IndexController.php”并打开它。在类下我添加以下函数:

    public function likecountAction()
        {
        $blogload = Mage::getModel('blog/blog')->load($_POST['pid']);
        $newid = $blogload['like']+1;
        $data = array('like'=> $newid);
        $blogload->addData($data);
        try {
            $blogload->setId($_POST['pid'])->save();
            echo $newid;
    
        } catch (Exception $e){
            echo $e->getMessage(); 
        }
        }
    

    在博客数据库中,我有 pid(作为主键)之类的字段。当您单击“like-result”类时,该功能的工作方式类似增加+1。 我的 div 结构也是这样的:

    <?php
    
        $allCollection=Mage::getModel("blog/blog")->getCollection();
        $allCollection->addFieldToFilter('status',1);
        if ($allCollection->count() >= 1)
        {
            $news = array();
            ?>
            <div class="blog clearfix">
            <?php
            foreach ($allCollection as $news)
            {?>   
    <p class="like-result" id="<?php echo $news->getId(); ?>"> <?php echo $news->getLike(); ?> </p>
        <a style="display: none;" class="notify-loader"><img src="http://www.sendhersomething.com/skin/frontend/megatron/default/images/ajax/notify-loader.gif"></a>
        <a style="display: none;" class="notify-status"><img src="http://www.sendhersomething.com/skin/frontend/megatron/default/images/ajax/ststus.png"></a>
      <?php } ?>
            </div>
    <?php } ?>
    

    试试这个!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多