2017-05-22 6 views
0

J'ai un problème très étrange avec un formulaire Yii2, avec des champs de saisie et un bouton de soumission. Le bouton d'envoi est bloqué et les règles pour les champs ne s'appliquent pas. Rien ne se passe lorsque le bouton est enfoncé.Yii2 ActiveForm a cessé de fonctionner

Cela a fonctionné parfaitement avant. Tout ce que j'ai fait était de déplacer l'appel à un autre modèle. Quand il fonctionne, je fais l'appel d'un menu (kartik sidenav) dans le fichier layout (main.php): $ fruitbasket [] = ['label' => 'Ajouter un nouveau ...', ' url '=> ['/fruit-bananas/create ']];

Lorsqu'il ne fonctionne PAS, j'ai déplacé cet appel vers une autre vue (fruit/index), et changé le code ci-dessus (dans main.php) en 'label' => Icon :: show ('plus'). 'Ajouter un nouveau ...', 'url' => [ '/ fruits/index'], .. et dans le fichier fruits/index je fais un autre widget Kartik sidenav, comme ceci:

<?php> 
echo SideNav::widget([ 
    ... 

'items' => [ 
       [ 
        'label' => Icon::show('folder-open') . '<span class=sideitems>Bananas</span>', 'url' => ['/fruit-bananas/create'], 
       ], 
      ] 
     ]); 
    ?> 

Il est le même lien avec les fruits-bananes/créer, et il semble fonctionner. Le formulaire rend comme il se doit. Mais maintenant j'ai les problèmes que j'ai décrits. Dans le premier cas, le bouton et les règles de soumission fonctionnent. Dans le dernier cas, ce n'est pas le cas. J'espère que cela est compréhensible. EDIT: ajouter quelques informations: ActionCreate:

public function actionCreate() 
{ 
    $model = new FruitBananas(); 
    $items = ArrayHelper::map(Bananas::find()->all(),'id','brands'); 
    if ($model->load(Yii::$app->request->post()) && $model->save()) { 
     return $this->redirect(['view', 'id' => $model->id]); 
    } else { 
     return $this->render('create', [ 
      'model' => $model, 
      'items' => $items 
     ]); 
    } 
} 

ActiveForm:

<?php $form = ActiveForm::begin(); ?> 
<?= $form->field($model, 'material')->dropDownList($items, ['id' => 'form-field-len']) ?> 
<div class="form-group"> 
    <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> 
</div> 

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

Action du contrôleur et formulaire? –

+0

Merci.Ces choses sont ajoutées .. ActionCreate n'est jamais appelée par le bouton Créer. –

+0

Veuillez inspecter votre formulaire et vérifier 'action'. Voir si c'est correct ou non. –

Répondre

0

Enfin, je résolu mon problème. La cause de ceci n'était pas là où vous pourriez regarder immédiatement. Il était en AppAsset.php, où je decommented une ligne que j'avais ajouté il auparavant:

public $js = [ 
    'https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js' 
]; 

J'ai ajouté cette ligne, une fois, puis decommented, tout en essayant d'obtenir l'interface sémantique et d3.js travailler . Apparemment, il doit être actif. Ce qui m'inquiète un peu. Une telle fonctionnalité de base comme décrit ci-dessus, devrait faire avec le jQuery déjà intégré pour Yii2? En général, c'est une chose en désordre avec toutes ces bibliothèques en ligne. Peut-être un sujet pour un fil à venir ici?