我正在编写一个模块以在Magento中执行一个简单的Ajax调用,但是到目前为止,我还无法使它正常工作- 我觉得我在某个地方缺少重要组件。这些是我目前拥有的文件:
Creare / Groupedajax / controllers / 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返回“测试”值即可。我只想知道是否所有位都可以使用?
这是我遵循的教程:http : //www.atwix.com/magento/ajax-requests-in- magento/
========================已解决========================
我只需要在网址开头加一个斜杠:
$j.ajax({ url: "/groupedajax/ajax/index", type: "POST", data: "size="+$j(this).val(), success: function(data) { $j('#results').html(data); } });
如果您的JavaScript是从.phtml模板文件输出的,则可以使用便捷功能来使URL完全合格,这将是最安全的处理方式。
$j.ajax({ url: "<?php echo $this->getUrl('groupedajax/ajax/index') ?>", type: "POST", data: "size="+$j(this).val(), success: function(data) { $j('#results').html(data); } });