magento ajax调用控制器方法

时间:2016-03-07 15:45:29

标签: ajax magento

我尝试使用ajax从phtml模板文件中调用我的控制器,我不知道出了什么问题。

看起来我只遇到了一些路由问题:

在我的config.xml中:

<routers>
    <Samplefolder>
        <use>admin</use>
        <args>
            <module>MyModule_Samplefolder</module>
            <frontName>SampleFolder</frontName>
        </args>
    </Samplefolder>
</routers>

Block / Adminhtml / OnePageFolder.php:

public function getAddCardUrl() {
    $url = Mage::helper('adminhtml')->getUrl('SampleFolder/OnePageFolder/AddCard');
    //$url = $this->getUrl('*/*/AddCard');
    return $url;
}

应用程序/设计/ adminhtml /默认/默认/模板/ samplefolder的/ OnePageFolder.phtml:

var url = '<?php echo $this->getAddCardUrl(); ?>';
// this url is called from http://mywebsite.com/index.php/admin/SampleFolder/OnePageFolder/index/key/cd0efd9a23e6bee7462e0fed5db6ac67/ and is looking like http://mywebsite.com/index.php/admin/SampleFolder/OnePageFolder/AddCard/key/17cf35ef0cae06459e7acf46b7e2e6d5/ which looks good

//then I call my controller with AJAX : 

ajaxCall(url,5478,1234 );

function ajaxCall(url,customer_id,club_id)
{
    jQuery.ajax({
        url: url,
        type: 'POST',
        data: {customer_id:customer_id, club_id:club_id},
        dataType: 'json',
        success: function(json) {
            if(json.response == 'ok') {
                alert('good');
            } else {
                alert('Erreur : '+ json.message);
            }
        }
    });
}

最后是我无法达到的控制器

/controllers/OnePageFolderController.php:

/**
 * Add club card
 *
 */
public function AddCardAction()
{

    var_dump('this code is not reached');
    die;
}

我的ajax回调中的错误路由器匹配100次迭代,但我不知道这里配置错误。我使用已经定义并正在工作的控制器。

例如我有一个非ajax按钮,可以使用如下调用:Mage::helper('adminhtml')->getUrl('SampleFolder/OnePageFolder/DownloadList'),其功能位于控制器的上方。

编辑:即使我直接从url调用此方法,我也收到了错误,因此这意味着它不是ajax问题,而是路由行为的后端问题

2 个答案:

答案 0 :(得分:0)

而不是:ajaxCall(addCardUrl,5478,1234 );

尝试:ajaxCall(url,5478,1234 );

答案 1 :(得分:0)

我终于找到了我的解决方案,这是一个覆盖问题。 我在当地的一个控制员,但是magento指的是社区中的那个。