Yii2两个submitButtons转到了错误的URL

时间:2015-05-22 13:46:33

标签: php html yii2

我有一个带有模态窗口的表单,您可以在其中提交要输入到表单中的额外数据。模态有自己的“提交”按钮,与主窗体上的提交按钮分开。

问题是,当我点击模态上的提交按钮时,它会返回上一页。数据仍然会被提交,但由于用户现在位于错误的页面上,因此用量不大。

我尝试在按钮中指定'url'选项:

Html::submitButton('Submit', ['class' => 'btn btn-primary','url' => myUrl]);

但由于某种原因,这阻止了主表单的提交,即提交按钮不起作用。这两个联系不知何故?我是否需要将模态提交按钮指向特定的Url?理想情况下,我只是希望它在关闭模态后留在页面上。

编辑:

模态通过JavaScript加载:

.find("#clientModalContent")
        .load($(this).attr('value'));

然后我有一个单独的php文件,其中包含模态的实际内容,即一些字段和提交按钮。这由我的Controller中的动作呈现,我使用'renderAjax'方法:

return $this->renderAjax('modalcreateclient', [
            'model' => $model
            ]);

当用户点击一个按钮(Html :: button)时,实际上会调用模态,其中js可以选择加载它的id。

1 个答案:

答案 0 :(得分:0)

我认为你有两个按钮提交但只有一个ActiveForm,然后是两个动作提交的单个目的地。 但是你需要有两个独立的ActiveForm,每个都有一个唯一的提交。

要做到这一点,你必须指定一个正确的ActiveForm也模式,你在其中提交第二个并分配给这个ActiveForm方法和你关心的动作,如

<php  $form = ActiveForm::begin([
      'method' => 'posts',
      'action' => ['yourController/youAction'],
       .......
 ]); ?>


<?= $form->field($model, 'surname')->textInput(['maxlength' => 64]) ?>

<?= $form->field($model, 'name')->textInput(['maxlength' => 32]) ?>

<?= $form->field($model, 'zipcode')->textInput(['maxlength' => 4]) ?>

<div class="form-group">
    <?= Html::submitButton(Yii::t('app', 'save'), ['class' =>  'btn btn-primary' ]) ?>
</div>

<?php ActiveForm::end(); ?>