Php Zend有效的Post值
我在html中创建了一个简单的表单,我调用了这个部分中的控制器,它可以很好地捕捉到值,但是我想在参数为null但不起作用时验证这个参数,我不使用zendform,因为我不喜欢它的样式和方法“isValid”只有在创建新表单时才有效,但在这种情况下显然不起作用 代码如下:Php Zend有效的Post值,php,validation,zend-framework,http-post,Php,Validation,Zend Framework,Http Post,我在html中创建了一个简单的表单,我调用了这个部分中的控制器,它可以很好地捕捉到值,但是我想在参数为null但不起作用时验证这个参数,我不使用zendform,因为我不喜欢它的样式和方法“isValid”只有在创建新表单时才有效,但在这种情况下显然不起作用 代码如下: <HTML> <form action ="/insert" method="post"> <input type="text" name="myname"/>
<HTML>
<form action ="/insert" method="post">
<input type="text" name="myname"/>
<input type="text" name="lastname"/>
<input type ="submit" value="Send">
</form>
<HTML>
PHP代码
public function insertAction(){
$form=$this->_getAllParams();
if(!empty($form)){
echo '</br> your name : '.$form['myname'] ;
echo '</br> your last name : '.$form['lastname'] ;
exit;
}
else{
echo 'Oops! What are you doing?!';
exit;
}
}
公共函数插入(){
$form=$this->_getAllParams();
如果(!空($form)){
回显“您的姓名:”.$form['myname'];
回显“您的姓氏:”。$form['lastname';
出口
}
否则{
echo‘哎呀!你在干什么?!’;
出口
}
}
试试这个
public function insertAction(){
$form = new Your_Form ();
if ($form->isValid($_POST)) {
// success!
$values = $form->getValues();
print_r($values); // should have your values
} else {
// failure!
}
}
您的表单不仅仅是一组参数,它是一个帮助您呈现和验证表单的类。检查返回的值是否对表单有效后,可以使用getValues()函数提取这些值。您不需要手动呈现或创建表单HTML。在视图中,您只需呈现在控制器中创建并发送到视图的表单:
echo $this->form;
如果不使用Zend_表单,则无法使用isValid方法。 最快的解决方法是获取帖子,然后逐个验证字段 像这样:
$request = $this->getRequest();
if ($request->isPost())
{
$post = $request->getPost();
$myname = $post['myname'];
$lastname = $post['lastname'];
if (!is_null($myname) && !is_null($lastname))
{
// do your actions here
}else
{
// do your else actions here
}
}
谢谢,但我以前是这样做的,但在我的表单中使用这种方式的原因是因为使用输入文件和Zend的方法“输入文件”有些复杂,我也想从视图中更改样式。来自Mexicowell的问候呈现部分并不重要,您可以按照您想要的方式生成html。但是在检查值时,应该定义并使用Zend_Form对象,否则使用ZF到底有什么意义。。。只需执行$this->getRequest()->getPost()并逐个验证参数即可