我正在编写一个模块来在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); } });