Yii2:编写表单动作的正确方法

时间:2015-01-15 08:00:11

标签: php yii2

我已经写了YII2的表格标签,具体为

<?php $form = ActiveForm::begin(['id' => 'builder/saveform','options' => ['method' => 'post']]) ?>

但是当我运行这个时,我的外部javascript正在显示错误

Error: Syntax error, unrecognized expression: #builder/saveform

错误是什么

7 个答案:

答案 0 :(得分:8)

要更改默认操作,请将其添加为此格式['<controller>/<action>']

的第一个参数
<?php $form = ActiveForm::begin(['action' => ['builder/saveform'],'options' => ['method' => 'post']]) ?>

Example from the Yii2 guide

另外,请记住该方法默认发布,因此指定这是不必要的。

答案 1 :(得分:0)

为了现在我写了以下代码

<?php $form = ActiveForm::begin(['action' => 'index.php?r=builder/saveform','options' => ['method' => 'post']]) ?>

它正在工作,但它是正确的写作方式???

答案 2 :(得分:0)

我能够通过将动作添加到选项中来实现,如此

<?php $form = ActiveForm::begin(['id' => 'contact-form', 'options' => ['method' => 'post', 'action' => 'site/add']]); ?>

答案 3 :(得分:0)

对于Yii2

$form = ActiveForm::begin([
                            'id'      => 'login-form',
                            'options'=>['autocomplete'=>'off','method' => 'post', ],
                            'action' => '/frontend/web/user-management/auth/login',
                            'validateOnBlur'=>false,
                            'fieldConfig' => [
                                    'template'=>"{input}\n{error}",
                            ],
                                        ]);

答案 4 :(得分:0)

 $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data'], 'action' => Yii::$app->urlManager->createUrl(['site/signup'])]);

您还可以将此代码段用于自定义表单操作和其他属性。 createUrl方法不会影响您的url模式。

答案 5 :(得分:0)

由于仍然没有接受答案,因此您的问题的确切答案在错误中: “无法识别的表达式:'#builder / saveform'”。您为表单的“id”HTML tag分配了“builder / saveform”值,其中包含“/” - HTML4 Specification方面的非法字符。我想Yii有一个“验证”,导致你的错误。

现在,我相信您正在尝试指定表单提交的相对URL。为此,请参阅Michael St Clair的回答。

答案 6 :(得分:-1)

ActiveForm :: begin(['action'=>'news / subscriber','options'=> ['method'=>'post','action'=>'news / sunscribers']]); < / p>