2016-08-31 3 views
0

Ich habe ein Tabs :: Widget, dass alle Einstellungen in verschiedenen Registerkarten in einem ActiveForm befinden und Admin kann Config in jeder Registerkarte festlegen und einmal absenden. (Mehrere Formulare in einem Widget)Schaltfläche "Senden" in Tabs :: Widget in yii2

in Einstellen Ansicht:

<?php $form = ActiveForm::begin(); ?> 
<?php 

echo \yii\jui\Tabs::widget([ 
'headerOptions' => ['class' => 'tabs'], 
'itemOptions' => ['tag' => 'div'], 
'items' => [ 
    [ 
     'label' => 'serverSetting', 
     'content' => $this->render('serverSetting', ['model' => $model, 'form' => $form]), 
     'active' => true 
    ], 
    [ 
     'label' => 'emailSetting', 
     'content' => $this->render('emailSetting', ['model' => $model, 'form' => $form]), 
    ], 
    [ 
     'label' => 'smsSetting', 
     'content' => $this->render('smsSetting', ['model' => $model, 'form' => $form]), 
    ], 
], 
]); 

?> 
    <div class="btnForm"> 
<?= Html::submitButton(Yii::t('app', 'ثبت', ['class' => 'btn btn-primary', 'name' => ''])) ?> 
</div> 
<?php ActiveForm::end(); ?> 

im Hinblick auf eine der Laschen (SMSServer Ansicht):

<?php 
use yii\helpers\Html; 
use app\components\ActiveForm; 
?> 
<div class="user-form"> 

<?= $form->field($model, 'login')->textInput(['placeholder' => 'host']) ?> 
<?= $form->field($model, 'password1')->textInput(['placeholder' => 'username']) ?> 
<?= $form->field($model, 'wsdl')->textInput(['placeholder' => 'password']) ?> 
<?= $form->field($model, 'from1')->textInput(['placeholder' => 'port']) ?> 
</div> 

in Controller:

public function actionSetting() 
{ 
    $model = new Setting(); 
    $model->setAttributes(Yii::$app->params, false); 
    if ($model->load(Yii::$app->request->post()) && $model->validate()) { 
     file_put_contents(Yii::getAlias('@app/config') . DIRECTORY_SEPARATOR . 'extra_params.php', base64_encode(serialize($model->attributes))); 
    } 
    return $this->render('setting', [ 
     'model' => $model, 
    ]); 
} 

Mein Formular und Übermittlungsschaltfläche funktionieren nicht. Wo ist mein Problem?

Antwort

0

Scheint Sie keine ActiveForm::end()

....... 
    <div class="btnForm"> 
    <?= Html::submitButton(Yii::t('app', 'ثبت', ['class' => 'btn btn-primary'])) ?> 
    </div> 

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

haben und für das Debuggen nicht unterdrücken den Namen Taste

0

Also habe ich meine Antwort gefunden. Meine Bestätigung war falsch.

in der Regel():

[['login', 'wsdl', 'password','from1'], 'required',], 

Aber ich poste Form ohne gefüllt alle Felder aus.

I geändert

[['login',], 'required',], 

[['login', 'wsdl', 'password',from1'], 'safe',], 
Verwandte Themen