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