Estoy tratando de usar la llamada ajax con Magento. Cuando llamo a una página de bloque a través de Ajax, obtengo todo el HTML, incluyendo cabecera, css, javascript y cuerpo. ¿Cómo obtengo solo una parte del cuerpo?Magento Ajax - ¿Cómo obtener solo la parte del cuerpo?
Respuesta
Si puede proporcionar un poco más de información acerca de qué "página de bloqueo" está llamando, puede ser más fácil discernir el problema. De forma predeterminada, Magento incluye la etiqueta de diseño <default>
para todas las páginas, que le dará los encabezados y pies de página incluso en llamadas AJAX.
Para enviar una página sin todo ese extra, tiene algunas opciones. En primer lugar, puede configurar la salida manualmente por su cuenta, evitando por completo el sistema de diseño. Magento hace esto por la sola página de características de pago:
$result = array('foo' => 'foo', 'bar' => 'bar',);
$this->getResponse()->setBody(Zend_Json::encode($result));
También puede modificar este método de usar un controlador de diseño personalizado de esta manera:
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));
}
Y en su archivo de diseño:
<your_custom_handle>
<remove name="right"/>
<remove name="left"/>
<block type="module/block" name="root" output="toHtml" template="module/template.phtml"/>
</your_custom_handle>
Una segunda opción, si desea utilizar diseños, es definir un diseño alternativo alternativo. Cuando llame al $this->loadLayout();
en los controladores de Magento, puede especificar un identificador distinto de <default>
para descender. Un ejemplo del controlador producto Magento sería:
$this->loadLayout('popup');
Esta disposición se define por defecto en el archivo de main.xml
disposición, y hace que la plantilla popup.phtml
, y puede ser adecuado para su uso.
Si todavía tiene problemas, hágamelo saber y podemos probar otras cosas. Espero que ayude.
Gracias, Joe
- 1. ¿Hay solo Ajax como parte de jQuery?
- 2. ¿Cómo obtener solo la parte de fecha de getdate()?
- 3. ¿Cómo dibujar solo esta parte del arco?
- 4. ¿Cómo obtener la hora del pedido en Magento?
- 5. Cómo obtener la altura de un elemento del cuerpo
- 6. obtener valor de la etiqueta del cuerpo del sitio web
- 7. Obtenga solo la parte relevante del sitio web
- 8. Obteniendo solo una cierta parte de un cuerpo de correo electrónico usando imap_body
- 9. Mongodb obtener una parte específica del documento
- 10. ¿Cómo puedo obtener el cuerpo NSURLResponse?
- 11. Obtener imagen del producto base en Magento
- 12. Preg_replace, reemplazando solo la parte del patrón en()?
- 13. cómo obtener la altura exacta del cuerpo de la ventana del navegador web?
- 14. Usando llamadas básicas AJAX dentro de Magento
- 15. ¿Cómo obtener la disponibilidad del producto con la identificación del producto en magento?
- 16. Obtener la posición actual de la ventana superior en relación con el cuerpo del documento
- 17. Cómo obtener el nombre del tema actual en Magento
- 18. WPF. ¿Cómo mostrar solo una parte del lienzo grande?
- 19. Magento: obtener la regla del código de cupón
- 20. Gema del correo - cómo limpiar la cadena del cuerpo
- 21. Cómo obtener la historia de ajax
- 22. Rails 4 + Turbolinks: JS en la cabeza o en la parte inferior del cuerpo?
- 23. Lectura de una parte de la respuesta de ajax html
- 24. Cómo operar solo en parte de la línea
- 25. obtener solo una parte de una matriz en Java?
- 26. ¿Cómo obtener useragent en el controlador magento?
- 27. Cómo configurar el cuerpo sin procesar en jQuery Ajax?
- 28. Cómo obtener la moneda de la tienda Magento
- 29. Obtener URL de medios incluida la parte del servidor
- 30. deshabilitar/habilitar hacer clic derecho en una parte particular del cuerpo html
Gracias por esto. Me salvó un montón de tiempo. – Travis
Tenga en cuenta que si copia y pega el ejemplo del archivo de diseño, asegúrese de cambiar 'type =" module/block "' a un tipo de bloque de magento real, como 'type =" page/html "', o un tipo de bloque personalizado definido para tu módulo – zlovelady
brillante, simple, eficiente ... Me encanta. Gracias Joe – OSdave