Home Backend Development PHP Tutorial The yii framework form model submits form data in the form of an array

The yii framework form model submits form data in the form of an array

Jul 25, 2016 am 09:12 AM

According to the description in the Yii documentation, the general process of Yii processing forms is: Create a model class corresponding to the form and set field validation rules Create an action corresponding to form submission and process the submitted content Create a form in the view In a small project just now, I wanted to use ajax to submit form information and verify and save it, but I didn’t want to use a hidden iframe for non-refresh submission, and the verification method of the model class could be used in the action, so I thought of using the form array submission method. . Example, form code:

  1. <form action='' method='post' name='form_test'>
  2. <input type='text' name='arr[]' value='1'>
  3. &lt ;input type='text' name='arr[]' value='2'>
  4. <input type='text' name='arr[]' value='3'>
  5. </form>
Copy the code

After submission, you can directly use $_POST['arr'] to get the submitted data. $_POST['arr'] is: Array ( [0] => a [1] => b [2] => c )

Similarly, if you use the following form to submit:

  1. <form action='' method='post' name='form_test'>
  2. <input type='text' name='arr[3]' value='a'>
  3. <input type='text' name='arr[6]' value='b'>
  4. <input type='text' name='arr[8]' value='c'>
  5. < /form>
Copy the code

$_POST['arr'] as: Array ( [3] => a [6] => b [8] => c )

Of course you can also submit a two-dimensional array:

  1. <form action='http://127.0.0.1/zhaobolu/test.php' method='post' name='form_test'>
  2. <input type='text' name=' arr[][name1]' value='a'>
  3. <input type='text' name='arr[][name2]' value='b'>
  4. <input type='text' name ='arr[][name3]' value='c'>
  5. </form>
Copy code

$_POST['arr'] is: Array ( [0] => Array ( [name1] => a ) [1] => Array ( [name2] => b ) [2] => Array ( [name3] => c ) ) There is a problem here. If you do not set the key of the first sub-array, each value will be added to arr sequentially when generating the array. If you want to save the information in an array, just add a key value, as follows:

  1. <form action='http://127.0.0.1/zhaobolu/test.php' method='post' name='form_test'>
  2. <input type='text' name=' arr[a][name1]' value='a1'>
  3. <input type='text' name='arr[a][value1]' value='a2'>
  4. <input type='text ' name='arr[b][name2]' value='b1'>
  5. <input type='text' name='arr[b][value2]' value='b2'>
  6. </ form>
Copy code

$_POST['arr'] is: Array ( [a] => Array ( [name1] => a1 [value1] => a2 ) => Array ( [name2] => b1 [value2] => b2 ) )

An example of using ajax to submit a form and verifying it using the yii form model. The first is the model class part, which has only the simplest verification method:

  1. <?php
  2. class LandingForm extends CFormModel
  3. {
  4. public $landing_title;
  5. public $landing_content;
  6. public $landing_position;
  7. public function rules()
  8. {
  9. return array(
  10. array('landing_title, landing_content', 'required'),
  11. array('landing_position', 'default', 'value'=>''),
  12. );
  13. }
  14. }
Copy code

The model class is setting parameters When verifying the method, you need to set rules for each public parameter. If there are parameters without set rules, after assigning values ​​to the model using the form value in $_POST, the parameter values ​​without set rules will be empty. Get the parameters submitted by the form in the action and verify:

  1. $model = new LandingForm;
  2. $model->attributes = $_POST['form'];
  3. if($model->validate()){
  4. $info = $model-> attributes;
  5. ...
  6. }
Copy code

The last is the code for the front-end submission form part, using jquery:

  1. var info = new Object();
  2. info = { 'form[landing_title]': landing_title,
  3. 'form[landing_content]': landing_content,
  4. 'form[landing_position]': landing_position,
  5. };
  6. var url = "...";
  7. $.post(url, info, function(rst){
  8. ...
  9. });
Copy code


Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

11 Best PHP URL Shortener Scripts (Free and Premium) 11 Best PHP URL Shortener Scripts (Free and Premium) Mar 03, 2025 am 10:49 AM

11 Best PHP URL Shortener Scripts (Free and Premium)

Working with Flash Session Data in Laravel Working with Flash Session Data in Laravel Mar 12, 2025 pm 05:08 PM

Working with Flash Session Data in Laravel

Simplified HTTP Response Mocking in Laravel Tests Simplified HTTP Response Mocking in Laravel Tests Mar 12, 2025 pm 05:09 PM

Simplified HTTP Response Mocking in Laravel Tests

Build a React App With a Laravel Back End: Part 2, React Build a React App With a Laravel Back End: Part 2, React Mar 04, 2025 am 09:33 AM

Build a React App With a Laravel Back End: Part 2, React

cURL in PHP: How to Use the PHP cURL Extension in REST APIs cURL in PHP: How to Use the PHP cURL Extension in REST APIs Mar 14, 2025 am 11:42 AM

cURL in PHP: How to Use the PHP cURL Extension in REST APIs

12 Best PHP Chat Scripts on CodeCanyon 12 Best PHP Chat Scripts on CodeCanyon Mar 13, 2025 pm 12:08 PM

12 Best PHP Chat Scripts on CodeCanyon

Introduction to the Instagram API Introduction to the Instagram API Mar 02, 2025 am 09:32 AM

Introduction to the Instagram API

Notifications in Laravel Notifications in Laravel Mar 04, 2025 am 09:22 AM

Notifications in Laravel

See all articles