2014-01-11 175 views
0

我只是Magento的初学者。我想从我的.phtml文件中运行一个magento的ajax。我读了一个blog,但没有得到任何成功。我只是希望在产品页面上提交表单时向我的客户发送邮件。magento中的ajax无法正常工作

这是我的.phmtl文件路径和代码。

path - web/frontierFinal/app/design/frontend/default/frontier/template/catalog/product/view.phtml 

和代码

jQuery.ajax({ 
         url: "<?php echo 

    $this->getUrl('groupedajax/ajax/index') ?>", 
          type: "POST", 
          data: "size=434", 
          success: function(data) { 
          $j('#thankyou').html(data); 
          } 
         }); 

我只是跟着上述博客的步骤

1)首先,我创建了一个名为groupedajax /web/frontierFinal/groupedajax

一个模块,然后一个新的目录控制器和.php文件/web/frontierFinal/groupedajax/controllers/AjaxController.php

然后AjaxController.php

的代码
<?php 
class Creare_Groupedajax_AjaxController extends Mage_Core_Controller_Front_Action { 

    public function indexAction() { 
     echo "sasd"; 
    } 
} 
?> 

然后配置命名为/httpdocs/web/frontierFinal/groupedajax/etc/config.xml

和该文件的代码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> 

然后映射XML文件作为/httpdocs/web/frontierFinal/app/design/frontend/default/frontier/layout/groupedajax.xml

<?xml version="1.0"?> 
<layout version="1.0"> 
    <groupedajax_ajax_index> 
    <block type="groupedajax/groupedajax" name="root" output="toHtml" template="template/catalog/product/view.phtml" /> 
    </groupedajax_ajax_index> 
</layout> 

我知道我没有清楚的理解的目录这就是为什么这个问题即将up.But我需要你的帮助家伙。

当我运行ajax时,它显示404找不到。

请帮忙谢谢

回答

0

您的目录完全错误。所以Magento不使用你的任何代码。

请考虑这样的更多信息教程: http://coding.smashingmagazine.com/2012/03/01/basics-creating-magento-module/http://www.excellencemagentoblog.com/magento-part4-series-helloworld

你的基地dir是web/frontierFinal/。那么一切都应该在其中,主要在app。这就是所有文件都在这些教程中的位置。

+0

捷拉斯你可以帮我运行AJAX任何如何从我的一个.phtml文件请 – user3110655

+0

@ user3110655 - 你尝试查看我发布的链接?您必须将模块激活文件添加到'app/etc/modules'中,并放置代码文件'app/code/local'。 – Taras

+0

我读了你发送的链接的完整博客,但这是为了创建模块,我需要运行AJAX请帮助我 – user3110655

0

在你一个.phtml文件中使用

<script type="text/javascript"> 
    jQuery("#form_post").submit(function() { 
    var posdata = jQuery("#form_post").serializeArray(); 
    var url = "<?php echo Mage::getUrl('test/index/save') ?>"; 
    jQuery.ajax({ 
     type: "POST", 
     url: url, 
     datatype: "text", 
     data: posdata, 
     success: function(data) 
     { 
     $$(".result").invoke("update",data.replace(/\"/g, "")); 
     } 
    }); 
    return false; 
    }); 
</script> 

并在控制器添加

public function saveAction() 
{ 
    $result=Mage::app()->getRequest()->getParam('telephone');; 
    $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result)); 
}