我一直在阅读magento中的ajax,他们谈论模块和控制器很多,所以在管理设置自定义模块,控制器和前端路由器之后 我现在遇到问题,目前我只想让我的ajax调用返回一个类别页面及其产品,具体取决于id / param发布到控制器的内容。我不太了解PHP,所以我环顾四周,穿过这个
public function indexAction() {
$id = $this->getRequest()->getParam('id');
if($id) {
$_category = Mage::getModel('catalog/category')->load($id);
$product = Mage::getModel('catalog/product');
//load the category's products as a collection
$_productCollection = $product->getCollection()
->addAttributeToSelect('*')
->addCategoryFilter($_category)
->load();
// build an array for conversion
$json_products = array();
foreach ($_productCollection as $_product) {
$_product->getData();
$json_products[] = array(
'name' => ''.$helper->htmlEscape($_product->getName()).'',
'url' => ''.$_product->getProductUrl().'',
'description' => ''.nl2br($_product->getShortDescription()).'',
'price' => ''.$_product->getFormatedPrice().'');
}
$data = json_encode($items);
echo $data;
}
$this->loadLayout(array('helloworld_index_index'));
$this->renderLayout();
}
}
我知道这不是我需要的,但我很难在magento中掌握ajax 我的想法是:
如果有人能帮助我,我会真的很棒
谢谢
答案 0 :(得分:1)
此扩展程序可以帮助您在Magento中使用AJAX:Magento Ajax Scroll Catalog 它通过类别页面,搜索结果和高级搜索结果页面中的Ajax / JSON加载产品列表。
答案 1 :(得分:0)
有一个模块可以帮助您在Ajax中工作 http://www.magentocommerce.com/magento-connect/ajaxify-8411.html
答案 2 :(得分:0)
从代码中,您最终通过以下方式呈现页面布局:
$this->renderLayout();
这就是你的问题所在。尝试将数组编码的数据组织成Json格式。
$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
然后回来。
答案 3 :(得分:0)
您可以使用
http://github.com/hws47a/VF_EasyAjax
允许前端开发人员为每个页面发送ajax请求并获取Json响应。 您不需要使用Manento的app / code部分并更改任何PHP代码。 使用布局xmls,主题模板和javascript,通过Ajax完成所需的工作。
在Json响应中,开发人员可以收到: