今回は、yii フレームワークのフォームモデルを使用して配列形式でフォームを送信する手順について詳しく説明します。 yii フレームワークのフォームモデルを使用してフォームを配列形式で送信する場合の注意事項 について説明します。ここで実際のケースを見てみましょう。
Yii ドキュメントの説明によると、Yii がフォームを処理する一般的なプロセスは次のとおりです:
フォームに対応するモデルクラスを作成し、フィールドを設定します検証ルール
フォームの送信に対応するアクションを作成し、ビューで送信されたコンテンツ
を処理しますフォーム
を作成します。先ほどの小さなプロジェクトで、ajaxを使用してフォーム情報を送信し、検証して保存したいのですが、非表示のiframeを非表示に使用したくありません。 -refresh submit、アクション内でモデルクラスの検証メソッドが使えるので、フォーム配列を使ってSubmitすることを考えました。
フォームコードの例:
<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>
送信後、$_POST['arr'] を直接使用して、送信されたデータを取得できます:
Array ( [0] => a [1] => b [2] => c )
同様に、次のように使用した場合。送信するフォーム:
<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 )
もちろん、二次元配列を送信することもできます:
<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 ))
ここで問題が発生します。最初の部分配列のキーを設定しない場合、各値は次のようになります。必要に応じて、配列を生成するときに配列に情報を保存し、キー値を追加します:
<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 ))
Ajax を使用してフォームを送信し、Yii フォームを使用する例モデル検証。最初はモデルクラス部分で、最も単純な検証メソッドのみを持ちます:
<?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'=>''), ); } }
モデルクラスでパラメータ検証メソッドを設定する場合、ルールが設定されていないパラメータがある場合は、各パブリックパラメータにルールを設定する必要があります。 、$_POST のフォーム値を使用してモデルに値を割り当てた後、パラメーター値は空になります
アクションでフォームによって送信されたパラメーターを取得して確認します:
$model = new LandingForm; $model->attributes = $_POST['form']; if($model->validate()){ $info = $model->attributes; ... }
最後に。 、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){ ... });
この記事の事例などを読んだ後は、この方法を習得したと思います。とても興味深いですね。php 中国語 Web サイトの他の関連記事にも注目してください。 !
推奨読書:
コンソールコマンドを使用してyiiフレームワークを介してスケジュールされたタスクを作成する手順の詳細な説明
PHPアクセラレータeAcceleratorの構成と使用手順の詳細な説明
以上がyii フレームワークのフォーム モデルを使用して配列形式でフォームを送信する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。