Php Yii2表单验证但未提交以发送电子邮件
我有一个表单,它在单击提交按钮时不提交,但正在验证 见下表:Php Yii2表单验证但未提交以发送电子邮件,php,yii,yii2,yii2-advanced-app,yii-form,Php,Yii,Yii2,Yii2 Advanced App,Yii Form,我有一个表单,它在单击提交按钮时不提交,但正在验证 见下表: <?php $form = ActiveForm::begin([ 'id' => 'contact-form', 'action' => ['site/index'], 'options' => [ 'class' => 'contact-form wow fadeInUp',
<?php
$form = ActiveForm::begin([
'id' => 'contact-form',
'action' => ['site/index'],
'options' => [
'class' => 'contact-form wow fadeInUp',
'data-row-duration' => '1s',
]
])
?>
<div class="form-validation alert">
<div class="form-group col-md-12">
<?=
$form->field($model, 'name', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Full Name',
'autocomplete' => 'off'
]
])->label(false)
?>
</div>
<div class="form-group col-md-6">
<?=
$form->field($model, 'email', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Email',
'autocomplete' => 'off'
]
])->label(false)
?>
</div>
<div class="form-group col-md-6">
<?=
$form->field($model, 'phone', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Phone',
'autocomplete' => 'off'
]
])->label(false)
?>
</div>
<div class="form-group col-md-12">
<?=
$form->field($model, 'name', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Message',
'autocomplete' => 'off',
'rows' => '5'
]
])->textarea()->label(false)
?>
</div>
<div class="form-group col-md-4 col-md-offset-8">
<?=Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
<?php ActiveForm::end(); ?>
注意:我没有得到任何错误。它正在验证,但在填写表单并单击submit之后,该按钮不起作用。我甚至使用了
die()
来代替Yii::$app->session->setFlash()
仍然没有发生任何事情。它只是没有响应。显然,您有一个错误,但您没有注意到它,因为您正在呈现名称
字段,而不是活动表单
中的消息
字段,我指的是提交按钮之前的最后一个字段
<div class="form-group col-md-12">
<?=
$form->field($model, 'name', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Message',
'autocomplete' => 'off',
'rows' => '5'
]
])->textarea()->label(false)
?>
</div>
因此,将最后一个字段更改为下面的字段,现在一切都将正常工作
<div class="form-group col-md-12">
<?=
$form->field($model, 'message', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Message',
'autocomplete' => 'off',
'rows' => '5'
]
])->textarea()->label(false)
?>
</div>
您怎么知道它正在验证?你试过寻找错误吗?如果模型没有验证,请尝试使用var\u dump($model->errors)进行检查;退出代码>在其他部分哦,是的。谢谢,我错过了。但是在做了修正之后。还是一样按钮还是没有响应哪个按钮没有响应?您说表单正在提交,但在模型验证时没有发送电子邮件?您现在面临的问题是什么?控制台中是否存在任何错误@JamesDI检查了使用gii为CRUD生成的代码(表单),并在submit按钮周围看到了if语句。所以我只是模仿它,在相应的控制器函数中写下我想要的。现在它工作正常了。谢谢@Muhammad Omer Aslam。很高兴知道它现在起作用了,所以请将答案标记为正确@贾梅兹
<?= $form->errorSummary($model); ?>
<div class="form-group col-md-12">
<?=
$form->field($model, 'message', [
'options' => ['style' => 'margin:0;padding:0'],
'inputOptions' => [
'class' => 'form-control',
'placeholder' => 'Message',
'autocomplete' => 'off',
'rows' => '5'
]
])->textarea()->label(false)
?>
</div>