Maison > Article > développement back-end > Explication détaillée des étapes pour soumettre un formulaire sous la forme d'un tableau en utilisant le modèle de formulaire du framework yii
Cette fois, je vous apporte une explication détaillée des étapes de soumission d'un formulaire sous forme de tableau avec le modèle de formulaire du framework yii. Quelles sont les précautions pour soumettre un formulaire avec le formulaire du framework yii. modèle sous la forme d'un tableau. Voici un cas pratique. Jetons un coup d'oeil.
Selon la description dans la documentation Yii, le processus général de traitement d'un formulaire par Yii est :
Créer la classe modèle correspondant au formulaire, définir le champvalidation règles
Créer une action correspondant à la soumission du formulaire et traiter le contenu soumis
Créer le formulaire dans la vue
Dans un petit projet tout à l'heure, je voulais utiliser ajax pour soumettre les informations du formulaire, les vérifier et les enregistrer, mais je ne voulais pas utiliser une iframe cachée pour une soumission sans actualisation, et la méthode de vérification de la classe modèle peut être utilisée dans l'action, j'ai donc pensé à utiliser un formulaire tableau à soumettre.
Exemple, code du formulaire :
<form action='' method='post' name='form_test'> <input type='text' name='arr[]' value='1'> <input type='text' name='arr[]' value='2'> <input type='text' name='arr[]' value='3'> </form>
Après la soumission, vous pouvez directement utiliser $_POST['arr'] pour obtenir les données soumises, $_POST['arr'] est :
Array ( [0] => a [1] => b [2] => c )
De même, si vous utilisez le formulaire suivant pour soumettre :
<form action='' method='post' name='form_test'> <input type='text' name='arr[3]' value='a'> <input type='text' name='arr[6]' value='b'> <input type='text' name='arr[8]' value='c'> </form> $_POST['arr'] Array ( [3] => a [6] => b [8] => c )
Bien sûr, vous pouvez également soumettre un tableau bidimensionnel:
<form action='http://127.0.0.1/zhaobolu/test.php' method='post' name='form_test'> <input type='text' name='arr[][name1]' value='a'> <input type='text' name='arr[][name2]' value='b'> <input type='text' name='arr[][name3]' value='c'></form> $_POST['arr'] 为:Array( [0] => Array ( [name1] => a ) [1] => Array ( [name2] => b ) [2] => Array ( [name3] => c ))
Il y a un problème ici. Si vous ne définissez pas la clé du premier sous-tableau, chaque valeur sera ajoutée à l'arr séquentiellement lors de la génération du tableau. informations dans un tableau, ajoutez simplement une valeur clé, comme suit :
<form action='http://127.0.0.1/zhaobolu/test.php' method='post' name='form_test'> <input type='text' name='arr[a][name1]' value='a1'> <input type='text' name='arr[a][value1]' value='a2'> <input type='text' name='arr[b][name2]' value='b1'> <input type='text' name='arr[b][value2]' value='b2'></form> $_POST['arr'] 为:Array( [a] => Array ( [name1] => a1 [value1] => a2 ) [b] => Array ( [name2] => b1 [value2] => b2 ))
Un exemple d'utilisation d'ajax pour soumettre un formulaire et d'utilisation du formulaire yiivérification du modèle. La première est la partie classe de modèle, qui n'a que la méthode de vérification la plus simple :
<?php class LandingForm extends CFormModel { public $landing_title; public $landing_content; public $landing_position; public function rules() { return array( array('landing_title, landing_content', 'required'), array('landing_position', 'default', 'value'=>''), ); } }
Lors de la définition de la méthode de vérification des paramètres, la classe de modèle doit définir des règles pour chaque paramètre public s'il existe des paramètres. pour lesquels les règles ne sont pas définies, utilisez la valeur du formulaire dans $_POST pour attribuer des valeurs au modèle. Après cela, la valeur du paramètre sans définir la règle sera vide
Obtenez les paramètres soumis par le formulaire dans l'action et. vérifiez :
$model = new LandingForm; $model->attributes = $_POST['form']; if($model->validate()){ $info = $model->attributes; ... }
Enfin, le code de la partie formulaire de soumission frontale, en utilisant jquery :
var info = new Object(); info = { 'form[landing_title]': landing_title, 'form[landing_content]': landing_content, 'form[landing_position]': landing_position, }; var url = "..."; $.post(url, info, function(rst){ ... });
Je crois que vous maîtrisez la méthode après en lisant le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Configuration et étapes d'utilisation de l'accélérateur PHP eAccelerator Explication détaillée
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!