0

好吧,我在 html 中创建了一个简单的表单,我在这部分中调用了控制器,可以完美地捕获值,但是我想在为 null 但不起作用时验证这个参数,我不使用 zendform,因为不喜欢我样式和“isValid”方法仅在我创建新表单时有效,但在这种情况下显然无效

这是代码:

<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;
      }
}
4

2 回答 2

0

尝试这个

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;
于 2013-07-04T16:43:42.877 回答
0

如果不使用 Zend_Form,就不能使用 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
    }
}
于 2013-07-05T14:13:33.717 回答