2009-10-26 3 views
1

PEAR의 HTML_QuickForm을 시작하려고하는데 문제가 있습니다. 어떤 이유로 모든 양식 데이터가 POST가 아닌 GET으로 제출됩니다. 기본값은 POST로되어 있으며 명시 적으로 설정하려고했습니다. 내가 알아 낸 유일한 점은 폼에서 display()를 호출 할 때 올바르게 작동한다는 것입니다. 정적 템플릿을 사용하고 있는데 어떤 이유로 올바르게 작동하지 않을 때 사용합니다. 내 코드는 아래와 같습니다.PHP - QuickForm이 게시물보다는 얻기로 제출합니다.

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

신경 쓰지 마라, 나는 바보이며 거의 즉시 문제를 깨달았다. 내 템플릿 파일은 다음과 같이 보았다 :

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

문제는 내 양식 태그가 항상 GET하는 디폴트 있도록 POST 있어야 것을 알 수있는 방법이 없다고했다. 대신 양식 태그 자체 POST하기 위해 양식을 알려주는 비트있는 과정이

<form {formtest_attributes}> 

은 {formtest_attributes}처럼 보였다해야합니다.