PHP - QuickForm отправляет как получить, а не сообщение - PullRequest
1 голос
/ 26 октября 2009

Я пытаюсь начать работу с HTML_QuickForm от PEAR, но у меня возникла проблема. По какой-то причине все данные моей формы отправляются с помощью 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();
?>

1 Ответ

1 голос
/ 26 октября 2009

Неважно, я почти сразу понял проблему. Мой файл шаблона выглядел так:

<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.

...