我正在使用 Zend_Form (include_path 上的完整库)但不使用 MVC。$_POST
值与预期一致,但$form->getValues()
对于 $_POST 中包含正确字符串的键返回 null。我希望$form->getValues()
为“全名”键返回一个有效的字符串。这是表格:
class MyForm extends Zend_Form {
public function init() {
$this->setName('myform')
->setAction($_SERVER['PHP_SELF'])
->setMethod('post');
$fullname = $this->createElement('text', 'fullname')
->setLabel('What is your name?');
$this->addElement($fullname);
$this->addElement('submit', 'submit');
}
}
这是为表单生成的 HTML:
<form id="myform" name="myform" enctype="application/x-www-form-urlencoded" action="/classes_test/index.php" method="post">
<dl class="zend_form">
<dt id="fullname-label">
<label for="fullname" class="optional">What is your name?</label>
</dt>
<dd id="fullname-element">
<input type="text" name="fullname" id="fullname" value="">
</dd>
<dt id="submit-label"> 
</dt>
<dd id="submit-element">
<input type="submit" name="submit" id="submit" value="submit">
</dd>
</dl>
</form>
下面是处理:
$request = new Zend_Controller_Request_Http();
$form = new MyForm;
$form->setView(new Zend_View);
if ($request->isPost()) {
var_dump($_POST);
$data = $form->getValues();
var_dump($data);
if ($form->isValid($request->getPost()) {
...
}
}
这是 $_POST 的 var_dump:
array
'fullname' => string 'My Name' (length=7)
'submit' => string 'submit' (length=6)
这是 $data 的 var_dump:
array
'fullname' => null
为什么“全名”为空?