【问题标题】:Trigger event from frontend in magento来自magento前端的触发事件
【发布时间】:2015-03-27 06:13:01
【问题描述】:

我创建了一个名为 (Ownmodule_Autocancel) 的模块。 在此,我在名为 autocancel/autocancel.phtml 的模板文件的前端添加了一个按钮。该过程是,它应该由动作控制器重定向,例如“say hiwhn click on it”。 但是当我单击该按钮时,它不会被触发。不知道怎么触发,这里是autocancel.phtml

<form method="post" action = "<?php echo Mage::getUrl(); ?>" id="cancelorder">
<button type ="button" title="<?php echo $this->__('Cancel Pickup') ?>" class="button btn-checkout" onclick="setLocation('<?php echo Mage::registry('token'); ?>')"><span><span><?php echo $this->__('Cancel Pickup') ?></span></span></button></p>

而我的 controller.php 文件是

<?php
class Ownmodule_Autocancel_IndexController extends Mage_Core_Controller_Front_Action
{public function IndexAction(){
$this->loadLayout();
$this->getLayout()->getBlock('head')->setTitle($this->__('autocancel'));
//echo $this->getLayout()->createBlock('core/tempete')->setTemplete('autocancel/autocancel.phtml')->toHtml();
    $this->renderLayout();
}

} ?>

单击该按钮时,它只显示未定义的页面。

【问题讨论】:

  • 其实我不知道创建模块,这是我的第一个。所以我需要你的帮助

标签: php magento model-view-controller


【解决方案1】:

在模板中:

<form method="post" action = "<?php echo Mage::getUrl(); ?>" id="cancelorder">

只需替换

<?php echo Mage::getUrl(); ?>

<?php echo Mage::getBaseUrl(); ?>

你应该被重定向到主页。

因此,如果您在自定义控制器中创建另一个操作,只需附加到基本 url,例如,

echo Mage::getBaseUrl().'/autocancel/CONTROLLER/NEWACTION/';

只需阅读一些基本的 Magento URL 路由,你就应该准备好了。

更新

你的班级

class Ownmodule_Autocancel_IndexController extends Mage_Core_Controller_Front_Action
{public function IndexAction(){
$this->loadLayout();
$this->getLayout()->getBlock('head')->setTitle($this->__('autocancel'));
//echo $this->getLayout()->createBlock('core/tempete')->setTemplete('autocancel/autocancel.phtml')->toHtml();
    $this->renderLayout();
}

//add another action
public function testAction(){
die('test');
}

在您的控制器中执行此新操作

<form method="post" action = "<?php echo Mage::getBaseUrl(); ?>/autocancel/index/test" id="cancelorder">

基本上你有..

MagentoBaseUrl + modulename/controllername/actionname

其中,模块名称 = 自动取消,控制器名称 = 索引,动作 = 测试。

希望这会有所帮助。

【讨论】:

  • onclick="setLocation('&lt;?php echo Mage::registry('token'); ?&gt;') 我只是从其他模块中复制了这一行。我只想重定向到我的自定义模块。但是如何做到这一点?我要问的是获取我的控制器的网址。但不知道该怎么做。还要检查我的控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-08
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多