Я пытаюсь использовать вызов ajax с Magento. Когда я вызываю блок-страницу через Ajax, я получаю все HTML, включая head, css, javascript и body. Как получить только часть тела?Magento Ajax - Как получить только часть тела?
ответ
Если вы можете предоставить немного больше информации о том, какая «блочная страница», которую вы вызываете, может быть проще распознать проблему. По умолчанию Magento содержит тег макета <default>
для всех страниц, что даст вам верхние и нижние колонтитулы страниц даже при вызовах AJAX.
Чтобы отправить страницу без дополнительной информации, у вас есть несколько вариантов. Во-первых, вы можете просто установить выход вручную самостоятельно, полностью избегая системы компоновки. Magento делает это для одной страницы оформления заказа особенность:
$result = array('foo' => 'foo', 'bar' => 'bar',);
$this->getResponse()->setBody(Zend_Json::encode($result));
Вы также можете изменить этот метод, чтобы использовать пользовательский обработчик макета, как это:
protected function loadPage() {
$layout = $this->getLayout();
$update = $layout->getUpdate();
$update->load('your_custom_handle');
$layout->generateXml();
$layout->generateBlocks();
$output = $layout->getOutput();
$result = array('outputHtml' => $output, 'otherVar' => 'foo',);
$this->getResponse()->setBody(Zend_Json::encode($result));
}
И в файле макета:
<your_custom_handle>
<remove name="right"/>
<remove name="left"/>
<block type="module/block" name="root" output="toHtml" template="module/template.phtml"/>
</your_custom_handle>
Второй вариант, если вы хотите использовать макеты, заключается в определении альтернативного макета по умолчанию. Когда вы вызываете $this->loadLayout();
в контроллерах Magento, вы можете указать дескриптор, отличный от <default>
. Пример из контроллера продукта Magento будет:
$this->loadLayout('popup');
Это расположение определяется по умолчанию в файле main.xml
макета, и делает popup.phtml
шаблон, и могут быть пригодны для использования.
Если у вас все еще есть проблемы, сообщите мне, и мы можем попробовать другие вещи. Надеюсь, это поможет.
Спасибо, Джо
- 1. Как получить часть тела html в php
- 2. jMonkeyEngine - как получить часть тела, которая столкнулась
- 3. Как получить только часть столбца
- 4. Как получить только часть Word.Range.Text
- 5. Magento: переопределить только часть макета xml-файла
- 6. Как получить только тела уровня корня
- 7. Нижняя часть перекрывающегося тела
- 8. Получение только часть файла с JQuery AJAX
- 9. AJAX отправляет все данные, но контроллер получает только часть его
- 10. Возможно получить только часть данных xml, загруженных с помощью ajax?
- 11. Получить только часть удаленного URL-адреса в AJAX
- 12. Как получить часть тела из почты с помощью MIME :: Parser?
- 13. Как получить параметры тела запроса в magento 2.0
- 14. AJAX дисплей только часть веб-страницы
- 15. Извлеките только часть тела входящих писем с помощью bash
- 16. Как удалить только часть формы родительской категории url - Magento
- 17. XQuery - Получить только часть информации
- 18. Получить только часть XML-фида
- 19. Retrofit 2 только часть тела ответа «<html>» string
- 20. Magento + получить только сконфигурированные продукты
- 21. перезагрузить только часть страницы после запроса ajax
- 22. Как получить ТОЛЬКО часть файла WebClient?
- 23. Ecto inserted_at, как получить только часть даты?
- 24. Как получить только соответствующую часть строки?
- 25. Как получить только часть источника веб-страницы?
- 26. Как получить только числовую часть столбца
- 27. Как получить только суффиксную часть домена?
- 28. Как получить только часть URL-адреса? (PHP)
- 29. Как получить только выбранную часть онлайн-ресурса
- 30. Как удалить часть истории тела электронной почты?
Спасибо за это. Сохранял мне кучу времени. – Travis
Обратите внимание, что если вы копируете и вставляете пример файла макета, обязательно измените 'type =" module/block "' на фактический тип блока пурпурного цвета, например 'type =" page/html "', или определенный тип блока для вас модуль. – zlovelady
блестящий, простой, эффективный ... Мне это нравится. Спасибо Joe – OSdave