Ajax In Magento - PullRequest
       1

Ajax In Magento

0 голосов
/ 16 сентября 2011

Я читал об ajax в magento, и они много говорят о модулях и контроллерах, так что после того, как удалось настроить пользовательский модуль, контроллер и маршрутизатор внешнего интерфейса У меня сейчас проблемы, в данный момент я просто хочу, чтобы мой вызов ajax возвращал страницу категории и ее продукты в зависимости от того, какой идентификатор / параметр был отправлен на контроллер. Я не очень много знаю о 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();
    }
}

я знаю, что это не совсем то, что мне нужно, но у меня возникли проблемы с захватом Ajax в magento я имел в виду, что:

  1. при вызове ajax я отправляю ID категории контроллеру
  2. контроллер затем массив продуктов выбранной категории
  3. массив продуктов отправляется / вводится в файл шаблона, который затем отправляется обратно

если кто-нибудь может помочь мне, я был бы очень рад

Спасибо

Ответы [ 4 ]

1 голос
/ 28 ноября 2012

Это расширение может помочь вам работать с AJAX в Magento: Magento Ajax Scroll Catalog Загружает списки продуктов через Ajax / JSON на страницах категорий, результатов поиска и страниц с расширенными результатами поиска.

0 голосов
/ 22 февраля 2013

Вы можете использовать

http://github.com/hws47a/VF_EasyAjax

Позволяет разработчикам веб-интерфейса отправлять запросы ajax для каждой страницы и получать ответ Json. Вам не нужно работать с разделом приложения / кода Manento и изменять любой код PHP. Сделайте все, что вам нужно, работает через Ajax, используя только макет xmls, шаблоны тем и javascript.

В ответном интерфейсе Json разработчики могут получить:

  • Все сообщения, которые были добавлены в сеанс
  • Некоторые блоки из текущего макета страницы
  • Любой блок, который нужно добавить в специальный макет xml
0 голосов
/ 17 августа 2012

Из вашего кода вы, наконец, визуализируете макет страницы через:

$this->renderLayout();

Вот в чем твоя проблема. Попробуйте организовать данные в массиве, закодировать в формате Json.

$this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));

и возвращение.

0 голосов
/ 14 мая 2012

Существует один модуль, который может помочь вам в работе в Ajax http://www.magentocommerce.com/magento-connect/ajaxify-8411.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...