【问题标题】:Headers already sent error in Magento Contact form标头已在 Magento 联系表单中发送错误
【发布时间】:2012-12-20 13:12:47
【问题描述】:

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

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

所以在contacts模块的模板中基本上有两个文件,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 加载不同的联系表格。如果有更好的方法,那也没关系。有人吗?

【问题讨论】:

  • 我检查了文件末尾是否有多余的空格,但没有。所以有人请给我一些解决方案。

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


【解决方案1】:

我自己解决了。我在我的控制器动作中回显一个块。所以删除了它,而是像这样渲染布局

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

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

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2023-04-02
    • 2023-03-11
    • 1970-01-01
    • 2013-10-09
    • 2012-01-21
    相关资源
    最近更新 更多