我正在编写一个模块来在Magento中执行一个简单的Ajax调用,但是我到目前为止还没有得到它的工作 – 我觉得我在某处失去了重要的组件。这些是我目前拥有的文件:
Creare / Groupedajax /控制器/ 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>
我的Ajax电话:
$j.post("groupedajax/ajax/index",{ size: $j(this).val()},function(data) {
$j('#results').html(data);
});
布局/ 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>
我的.phtml文件目前只有“测试”。我只需要我的结果div来返回’test’值。我只想知道所有的位是否适合这个工作?
这是我遵循的教程:http://www.atwix.com/magento/ajax-requests-in-magento/
解决========================
我只需要在我的url开头的正斜杠:
$j.ajax({
url: "/groupedajax/ajax/index",type: "POST",data: "size="+$j(this).val(),success: function(data) {
$j('#results').html(data);
}
});
解决方法
如果您的javascript是从.phtml模板文件输出,那么您可以使用
a convenience function使URL完全合格,这将是最安全的方式继续。
$j.ajax({
url: "<?PHP echo $this->getUrl('groupedajax/ajax/index') ?>",success: function(data) {
$j('#results').html(data);
}
});