表格不发布

时间:2015-07-08 04:13:11

标签: forms yii2 html-post

这是我的视图,其中有一个表单包含一个字段和一个提交按钮。

<form id="typeheadForm" method="post" class="form-horizontal">
        <div class="form-group">
            <label class="col-xs-3 control-label">Movie</label>
            <div class="col-xs-3">
                <input type="text" class="form-control" name="state" id="movie_name" />
            </div>
        </div>

         <input type='submit' name='submit' value='Search' class="btn btn-squared btn-default">
    </form> 

以下是我的控制器代码

  public function actionMovies_all()
        {
            $this->layout = "main";
            if ( isset( $_POST[ 'movie_name' ] ) )
            {
             print_r("success");die();
            }
            if ( Yii::$app->request->post() )
            {
              print_r(Yii::$app->request->post());die();
            }
        }

我无法发布表单。我究竟做错了什么? 我收到一个错误&#34;不良要求(#400) 无法验证您的数据提交。&#34;

2 个答案:

答案 0 :(得分:2)

<form id="typeheadForm" method="post" class="form-horizontal">替换为

<?= \yii\helpers\Html::beginForm('', 'post', ['id' => 'typeheadForm', 'class' => 'form-horizontal']);?>

您收到bad request因为当您手动创建表单时,未将 csrf 标记包含在其中。当您使用Html::beginForm方法创建表单时,它会在内部处理它。

答案 1 :(得分:0)

试试这个:

public function actionMovies_all()
    {
        $this->layout = 'main';
        if ( isset( $_POST[ 'submit' ] ) )
        {
         print_r('success');die();
        }
        if ( Yii::$app->request->post() )
        {
          print_r(Yii::$app->request->post());die();
        }
    }