Sto scrivendo un modulo per eseguire una semplice chiamata Ajax in Magento, ma non riesco a farlo funzionare fino ad ora - Mi sento come se manchi da qualche parte un componente vitale. Questi sono i file che attualmente hanno:Uso delle chiamate AJAX di base all'interno di Magento
Creare/Groupedajax/controller/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>
My Ajax Chiama:
$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>
Il mio file .phtml ha semplicemente 'test' in esso al momento. Ho solo bisogno del mio div di risultati per restituire il valore 'test'. Voglio solo sapere se tutti i bit sono a posto perché funzioni?
Questo è il tutorial ho seguito: http://www.atwix.com/magento/ajax-requests-in-magento/
======================== risolto ======= =================
ho solo bisogno di una barra in avanti all'inizio del mio url:
$j.ajax({
url: "/groupedajax/ajax/index",
type: "POST",
data: "size="+$j(this).val(),
success: function(data) {
$j('#results').html(data);
}
});
Rompere il problema in attività più piccole. Cosa succede se accedi direttamente all'URL "example.com/groupedajax/ajax/index"? Dato che jQuery ha un percorso relativo, sta accedendo all'URL corretto? Usa Firebug per controllare. Avete una classe di blocco che corrisponde al tipo 'groupedajax/groupedajax' o potrebbe essere usato il più semplice' core/template'? – clockworkgeek
Quando sono arrivato a/groupedajax/ajax/index vedo "test", quindi funziona. Ho cambiato il tipo in 'core/template' perché non ho una classe Block corrispondente che è stata una svista da parte mia. Continuerò a controllare ... forse la chiamata di Jquery ajax ha smesso di funzionare ... –
L'ho capito - il mio script URL di Jquery aveva bisogno di una barra in avanti all'inizio: $ j.post ("/ groupedajax/ajax/indice ", {dimensione: $ j (questo) .val()}, funzione (dati) { $ j ('# risultati'). html (dati); }); –