jquery - Usando llamadas básicas AJAX dentro de Magento
post php (1)
Estoy escribiendo un módulo para llevar a cabo una simple llamada Ajax en Magento, pero no puedo hacerlo funcionar hasta ahora. Siento que me falta un componente vital en alguna parte. Estos son los archivos que tengo actualmente:
Creare / Groupedajax / controladores / AjaxController.php:
class Creare_Groupedajax_AjaxController extends Mage_Core_Controller_Front_Action {
public function indexAction() {
$this->loadLayout();
$this->renderLayout();
}
}
Creare / Groupedajax / etc / config.xml:
<?xml version="1.0"?>
<config>
<modules>
<Creare_Groupedajax>
<version>0.1.0</version>
</Creare_Groupedajax>
</modules>
<frontend>
<routers>
<groupedajax>
<use>standard</use>
<args>
<module>Creare_Groupedajax</module>
<frontName>groupedajax</frontName>
</args>
</groupedajax>
</routers>
<layout>
<updates>
<groupedajax>
<file>groupedajax.xml</file>
</groupedajax>
</updates>
</layout>
</frontend>
</config>
Mi llamada Ajax:
$j.post("groupedajax/ajax/index", { size: $j(this).val()}, function(data) {
$j(''#results'').html(data);
});
layout / groupedajax.xml:
<?xml version="1.0"?>
<layout version="1.0">
<groupedajax_ajax_index>
<block type="groupedajax/groupedajax" name="root" output="toHtml" template="groupedajax/groupedajax.phtml" />
</groupedajax_ajax_index>
</layout>
Mi archivo .phtml simplemente tiene ''prueba'' en este momento. Solo necesito que mi resultado div devuelva el valor de ''prueba''. Solo quiero saber si todos los bits están en su lugar para que esto funcione.
Este es el tutorial que he seguido: http://www.atwix.com/magento/ajax-requests-in-magento/
===================== SOLUCIONADO ========================
Solo necesitaba una barra inclinada al principio de mi url:
$j.ajax({
url: "/groupedajax/ajax/index",
type: "POST",
data: "size="+$j(this).val(),
success: function(data) {
$j(''#results'').html(data);
}
});
Si su javascript se está produciendo desde un archivo de plantilla .phtml, puede utilizar una función de conveniencia para hacer que la URL sea totalmente calificada, lo que entonces será la forma más segura de proceder.
$j.ajax({
url: "<?php echo $this->getUrl(''groupedajax/ajax/index'') ?>",
type: "POST",
data: "size="+$j(this).val(),
success: function(data) {
$j(''#results'').html(data);
}
});