Maison > développement back-end > tutoriel php > Cadre de développement PHP Tutoriel Yii Framework (11) Exemple de composant d'interface utilisateur ActiveForm

Cadre de développement PHP Tutoriel Yii Framework (11) Exemple de composant d'interface utilisateur ActiveForm

黄舟
Libérer: 2023-03-05 07:32:02
original
1117 Les gens l'ont consulté

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',);}
Copier après la connexion

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,));}
Copier après la connexion

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'),
)); ?>
Copier après la connexion

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.
Copier après la connexion


Les résultats en cours d'exécution sont les suivants :

vcyzzCgxMSkgVUnX6bz+IEFjdGl2ZUZvcm3KvsD9" src="/uploadfile/2016/0106/20160106062558152.png" />
Copier après la connexion

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 (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal