【发布时间】:2015-08-16 06:01:37
【问题描述】:
大家好,
我是 Magento 的新手。我想在 Magento 中学习 **ajax 过程。** 谁能通过一个简单的例子帮助我理解 Magento 中的 ajax? 您的帮助将不胜感激。
【问题讨论】:
标签: ajax magento-1.9
大家好,
我是 Magento 的新手。我想在 Magento 中学习 **ajax 过程。** 谁能通过一个简单的例子帮助我理解 Magento 中的 ajax? 您的帮助将不胜感激。
【问题讨论】:
标签: ajax magento-1.9
我给你一个简单的例子。要在 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 } ?>
试试这个!
【讨论】: