我尝试使用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问题,而是路由行为的后端问题
答案 0 :(得分:0)
而不是:ajaxCall(addCardUrl,5478,1234 );
尝试:ajaxCall(url,5478,1234 );
答案 1 :(得分:0)
我终于找到了我的解决方案,这是一个覆盖问题。 我在当地的一个控制员,但是magento指的是社区中的那个。