我正在尝试开始使用PEAR的HTML_QuickForm,但我遇到了一个问题。由于某种原因,我所有的表单数据都是用GET而不是POST提交的。默认值应该是POST,我已经尝试过显式地设置它。我唯一能弄清楚的是,当我简单地在表单上调用display()时,它可以正常工作。我使用的是静态模板,但由于某些原因,它不能正常工作。我的代码如下所示。
<?php
include_once 'HTML/QuickForm.php';
include_once 'HTML/Template/Sigma.php';
include_once 'HTML/QuickForm/Renderer/ITStatic.php';
$form = new HTML_QuickForm('formtest', 'post');
$form->addElement('text', 'mytext');
$form->addRule('mytext', 'This is required', 'required');
$form->addElement('submit', 'mysubmit', 'This is a submit button');
$tpl = & new HTML_Template_Sigma('.');
$tpl->loadTemplateFile('template.html');
$renderer = & new HTML_QuickForm_Renderer_ITStatic($tpl);
$renderer->setRequiredTemplate('{label}<font color="red" size="1">*</font>');
$renderer->setErrorTemplate('<font color="red">{error}</font><br />{html}');
$form->accept($renderer);
$tpl->show();
?>发布于 2009-10-26 13:04:09
不要紧,我几乎立刻意识到了这个问题。我的模板文件如下所示:
<html>
<head><title>Test Form</title></head>
<body>
<form>
{formtest_mytext_html}<br />
{formtest_mytext_label}<br />
{formtest_mysubmit_html}<br />
{formtest_mysubmit_label}<br />
</form>
</body>
</html>问题是我的表单标签没有办法知道它应该是POST的,所以它总是缺省为GET。相反,表单标记应该如下所示
<form {formtest_attributes}>{formtest_attributes}当然是告诉表单使其自身POST的位。
https://stackoverflow.com/questions/1623142
复制相似问题