Maison >développement back-end >tutoriel php >Cadre de développement PHP Tutoriel Yii Framework (11) Exemple de composant d'interface utilisateur ActiveForm
CActiveForm a été brièvement introduit dans le didacticiel de développement Yii Framework (7) utilisant CHtml pour créer un formulaire et dans le didacticiel de développement Yii Framework (8) utilisant FormModel. Noël sera là dans quelques jours. Ici, aidez le Père Noël à faire une enquête sur les cadeaux de Noël que tout le monde espère recevoir et sur la nourriture qu'ils souhaitent manger pour le dîner de Noël.
Ici, nous partageons une partie du code comme cadre pour les exemples ultérieurs. Il copie essentiellement l'exemple Hello World, ajoute un DataModel vide et utilise le contrôleur par défaut (SiteController) et l'action par défaut (actionIndex). utilisez le fichier de configuration par défaut et le téléchargement de code.
La collecte de données utilisateur via des formulaires HTML est l'une des tâches principales du développement de programmes Web. En plus de la conception du formulaire, les développeurs doivent également remplir le formulaire avec des données existantes ou par défaut, valider les entrées de l'utilisateur, afficher les messages d'erreur appropriés pour les entrées non valides et enregistrer les entrées dans un stockage persistant. Yii simplifie grandement ce flux de travail grâce à sa structure MVC.
Lors du traitement des formulaires dans Yii, les étapes suivantes sont généralement requises :
Créez une classe de modèle qui représente les champs de données à collecter.
Créez une action de contrôleur en réponse à la soumission du formulaire.
Créez le formulaire lié à l'action du contrôleur dans le script de vue.
Create DataModel
class DataModel extends CFormModel{public $firstName;public $lastName; public $favouriteGift; public $favouriteDinner; public function rules(){return array(array('firstName, lastName', 'required'), array('favouriteGift,favouriteDinner', 'safe'));} static $gifts=array('1'=>'iPad','2'=>'Remote control helicopter','3'=>'60 inch 3D LED TV','4'=>'Holy Bible',); static $meals=array('1'=>'Egg','2'=>'Ham','3'=>'Chicken','4'=>'Pork','5'=>'Beer','6'=>'Coke','7'=>'Wine',);}
firstName, lastName sont utilisés pour enregistrer le nom de l'utilisateur, $favouriteGift et $favouriteDinner sont utilisés pour enregistrer les cadeaux et les noms des aliments de l'utilisateur. $gifts, $meals définissent de manière statique les types de cadeaux et les types de nourriture disponibles pour les utilisateurs. Ce qu'il convient de noter ici, c'est que firstName et lastName sont obligatoires, et que $favouriteGift et $favouriteDinner sont définis pour pouvoir être copiés en toute sécurité. Ils sont définis par les règles du modèle.
Définir l'action
Modifier la méthode Action de SiteController :
public function actionIndex(){$model=new DataModel(); if(!emptyempty($_POST['DataModel'])){$model->attributes=$_POST['DataModel']; if($model->validate()){$this->render('choice', array('model' => $model,)); return;}} $this->render('index', array('model' => $model,));}
Deux vues sont définies ici, l'index est utilisé pour obtenir la saisie de l'utilisateur et le choix affiche la sélection de l'utilisateur. résultats. $model->attributes=$_POST ['DataModel']; Comme nous l'avons vu dans Safe Attribute Assignment, cette ligne de code remplit le modèle avec les données soumises par l'utilisateur. L'attribut attributs est défini par CModel, qui accepte un tableau de paires nom-valeur et attribue chaque valeur à l'attribut de modèle correspondant.
Définir la vue
Définissez d'abord index.php Dans cet exemple, CActiveForm est utilisé pour une vérification transparente et cohérente côté client et côté serveur.
>beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'focus'=>array($model,'firstName'), )); ?>
Cet exemple est relativement simple et n'utilise pas ces vérifications complexes. Il nécessite uniquement que FirstName et LastName soient non vides, ce qui est défini par require dans les règles de DataModel.
beginWidget('CActiveForm'); ?> errorSummary($model); ?> label($model,'firstName'); ?>textField($model,'firstName') ?> label($model,'lastName'); ?>textField($model,'lastName') ?> Choose your Christmas Gift radioButtonList($model,'favouriteGift',DataModel::$gifts) ?> Choose your Christmas dinner checkBoxList($model,'favouriteDinner',DataModel::$meals) ?> endWidget(); ?> View Choice 就更简单,显示用户选择结果: Christmas "; ?>firstName . ' ' . $model->lastName . '.' ;?> You will be givenecho DataModel::$gifts[$model->favouriteGift];?>on Christmas Day. And you will haveforeach($model->favouriteDinner as $dinner){echo DataModel::$meals[$dinner] . ' ';}?> for Christmas dinner.
Les résultats en cours d'exécution sont les suivants :
vcyzzCgxMSkgVUnX6bz+IEFjdGl2ZUZvcm3KvsD9" src="/uploadfile/2016/0106/20160106062558152.png" />
Ci-dessus Ceci est le contenu du tutoriel du framework de développement PHP Yii Framework (11) Exemple de composant d'interface utilisateur ActiveForm Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !