1

PEAR の HTML_QuickForm を使い始めようとしていますが、問題があります。何らかの理由で、すべてのフォーム データが POST ではなく GET で送信されています。デフォルトは 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();
?>
4

1 に答える 1

1

気にしないでください、私はほとんどすぐに問題に気づきました。私のテンプレートファイルは次のようになりました:

<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 にするように指示するビットです。

于 2009-10-26T05:04:09.263 に答える