Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Schritte zum Senden eines Formulars in Form eines Arrays mithilfe des YII-Framework-Formularmodells
Dieses Mal erkläre ich Ihnen ausführlich die Schritte zum Senden eines Formulars in Form eines Arrays mit dem yii-Framework-Formularmodell. Was sind die Vorsichtsmaßnahmen zum Senden eines Formulars mit dem yii-Framework-Formular? Schauen wir uns das einmal in einem praktischen Fall an.
Gemäß der Beschreibung in der Yii-Dokumentation ist der allgemeine Prozess der Yii-Verarbeitung eines Formulars wie folgt:
Erstellen Sie die Modellklasse, die dem Formular entspricht, legen Sie die Feldvalidierung fest. Regeln
Erstellen Sie eine Aktion, die der Formularübermittlung entspricht, und verarbeiten Sie den übermittelten Inhalt
Erstellen Sie das Formular in der Ansicht
In einem kleinen Projekt wollte ich gerade Ajax verwenden Um die Formularinformationen zu übermitteln und zu überprüfen und zu speichern, wollte ich jedoch keinen versteckten Iframe für die Übermittlung ohne Aktualisierung verwenden, und die Überprüfungsmethode der Modellklasse kann in der Aktion verwendet werden, also habe ich über die Verwendung eines Formulars nachgedacht Array zum Senden.
Beispiel, Formularcode:
<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>
Nach der Übermittlung können Sie $_POST['arr'] direkt verwenden, um die übermittelten Daten abzurufen. $_POST['arr'] lautet:
Array ( [0] => a [1] => b [2] => c )
Ebenso gilt, wenn Sie zum Einreichen das folgende Formular nutzen:
<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 )
Natürlich können Sie auch ein zweidimensionales Array einreichen:
<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 ))
Hier liegt ein Problem vor. Wenn Sie den Schlüssel des ersten Unterarrays nicht festlegen, wird beim Generieren des Arrays jeder Wert nacheinander zu arr hinzugefügt. Wenn Sie die Informationen in einem Array speichern möchten, fügen Sie einfach einen hinzu Schlüsselwert wie folgt:
<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 ))
Verwenden Sie Ajax zum Senden eines Formulars und verwenden Sie das YII-FormularModellüberprüfungBeispiel: Zuerst ist der Modellklassenteil, nur die einfachste Überprüfungsmethode:
<?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'=>''), ); } }
Modellklasse Beim Festlegen der Parameterüberprüfungsmethode müssen Sie Regeln für jeden öffentlichen Parameter festlegen, nachdem Sie dem Modell Werte mithilfe des Formularwerts in $ zugewiesen haben _POST, die Parameterwerte ohne festgelegte Regeln sind leer
Rufen Sie die vom Formular in der Aktion übermittelten Parameter ab und überprüfen Sie sie:
$model = new LandingForm; $model->attributes = $_POST['form']; if($model->validate()){ $info = $model->attributes; ... }
Zum Schluss der Code für die Front-End-Übermittlung Formularteil mit 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){ ... });
Ich glaube, Sie haben diesen Artikel gelesen. Sie beherrschen die Fallmethode. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Konfiguration und Verwendungsschritte des PHP-Beschleunigers eAccelerator Ausführliche Erklärung
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Senden eines Formulars in Form eines Arrays mithilfe des YII-Framework-Formularmodells. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!