标题已在Magento联系表单中发送错误

时间:2012-12-11 06:15:58

标签: http-headers magento-1.7 contact-form

我正在我的页脚中的固定div中显示联系人,以便它显示在所有页面上。确实如此。当我点击一个'联系人'按钮它将通过AJAX加载联系表单。为此,我在Magento的默认联系人模块的indexController中创建了一个新动作。在那个动作中,我回应一个块,它调用我在所有页面上显示的自定义表单。

public function quickcontactAction(){
    echo $this->getLayout()->createBlock('core/template')->setTemplate('contacts/formquick.phtml')->toHtml();           
}

所以基本上联系人模块的模板中有两个文件,form.phtml和formquick.phtml。从页脚调用我调用formquick.phtml文件的动作,该文件调用indexController.php的post动作方法。 现在我的问题是,当我尝试从页脚中的固定div提交表单时,它会生成一个系统日志,表示已经发送了标题。

HEADERS ALREADY SENT: <pre>[0] C:\Program Files\EasyPHP-5.3.8.0\www\magento\app\code\core\Mage\Core\Controller\Response\Http.php:52
[1] C:\Program Files\EasyPHP-5.3.8.0\www\magento\lib\Zend\Controller\Response\Abstract.php:766
[2] C:\Program Files\EasyPHP-5.3.8.0\www\magento\app\code\core\Mage\Core\Controller\Response\Http.php:83
[3] C:\Program Files\EasyPHP-5.3.8.0\www\magento\app\code\core\Mage\Core\Controller\Varien\Front.php:188
[4] C:\Program Files\EasyPHP-5.3.8.0\www\magento\app\code\core\Mage\Core\Model\App.php:354
[5] C:\Program Files\EasyPHP-5.3.8.0\www\magento\app\Mage.php:683
[6] C:\Program Files\EasyPHP-5.3.8.0\www\magento\index.php:81
</pre>

我感觉与整个联系表单循环有关,但无法弄清楚如何解决。提交表单后,它会重定向到联系页面,因为它是如何在控制器中设置的,但我希望它保持在同一页面上。有人可以指导我吗?我只需要通过AJAX加载不同的联系表单。如果有更好的方法,那也很好。任何人吗?

1 个答案:

答案 0 :(得分:1)

我自己解决了。我在控制器动作中回应了一个块。所以删除了,而是像这样呈现布局

public function quickcontactAction(){
    $this->loadLayout()->renderLayout();
}

并在我的contacts.xml中添加了一个名为联系表单文件的新块。