2017-02-26 3 views
0

私はレイアウトページで「お問い合わせ」フォームを使用しています。これはmain.phpレイアウトページです:私の問題があるyii2のレイアウトにケープチャを実装

<?= $form->field($model, 'verifyCode', ['template' => '{label}'])->widget(Captcha::className(), [ 
    'template' => '<div class="col-xs-12">{image}</div><div class="col-xs-12">{input}</div>', 
    'options' => [ 
     'placeholder' => 'CAPTCHA Code', 
     'class' => 'form-control', 
    ], 
]) ?> 

:さ

class formWidget extends \yii\base\Widget{ 
... 
return $this->render('post',['model'=>$model]) 

とpost.php:

<footer class="footer"> 
    <div class="container" style="background-color: #F5F5F5"> 
     <?= \frontend\mostafa\formWidget::widget(); ?> 

と私はビューファイルをレンダリングしているformWidget私のカスタムで

  1. 私はウィジェットを使用しているためフォームを検証します。CaptchaActionを設定する必要がありますか?
  2. Captchaには常に間違ったメッセージが表示されるのはなぜですか?
  3. キャプチャの画像は常に同じで、機能しません。
+0

のですか? – scaisEdge

+0

フォームにAjaxのバリデーションがある –

+0

1)レイアウトでキャプチャを使用したのはなぜですか?あなたがあなたのレイアウトでそれを使うならば、あなたはあなたがレイアウトと呼ぶどこにでもcaptchaがあります。私は連絡フォームのレイアウトを呼んで、連絡フォームにcaptchaを使用して、それがどうなるかを見て、あなたの疑問を投稿することをお勧めします。 –

答えて

0

あなたがレイアウトでキャプチャを持っている理由は、このフォームセクション

<?php 
$form = ActiveForm::begin([ 
'id'      => 'registration-form', 
'enableAjaxValidation' => true, 
'enableClientValidation' => false]); 
?> 
<div class="col-lg-4" style="width: 50%;"> 
    <?= $form->field($model, 'name', ['template' => "{input}\n{hint}\n{error}"])->textInput(['placeholder' => $model->getAttributeLabel('name')]); ?> 
</div> 

<div class="col-lg-4" style="width: 50%;"> 
    <?= $form->field($model, 'email', ['template' => "{input}\n{hint}\n{error}"])->textInput(['placeholder' => $model->getAttributeLabel('email')]); ?> 
</div> 
<div class="col-lg-4" style="width: 100%;"> 
    <?php echo $form->field($model, 'subject')->textInput(['maxlength' => 255, 'id' => 'contact_form', 'placeholder' => $model->getAttributeLabel('subject')])->label(false) ?> 
    <?= $form->field($model, 'body')->textArea(['rows' => 3, 'placeholder' => $model->getAttributeLabel('body')])->label(false) ?> 
    <?= $form->field($model, 'verifyCode', ['template' => '{label}'])->widget(Captcha::className(), [ 
'template' => '<div class="col-xs-12">{image}</div><div class="col-xs-12">{input}</div>', 
'options' => ['placeholder' => 'CAPTCHA Code', 'class' => 'form-control']]) ?> 
    <div class="form-group" style="float: right"> 
    <?= Html::submitButton('sending',['class' => 'btn btn-info', 'name' => 'contact-button']) ?> 
    </div>  
関連する問題