Difference between #14 and #15 of
By Example: CHtml

Revision #15 has been created by ricardograna on Oct 7, 2009, 7:42:51 PM with the memo:

Added listData
« previous (#14) next (#16) »

Changes

Title unchanged

By Example: CHtml

Category unchanged

Tutorials

Yii version unchanged

Tags unchanged

Content changed

[...]
<?php echo CHtml::textField('Text', 'some value',
array('disabled'=>true); ?>
```


_  
 
 
_  
 
 
 
<a name="textField"></a>
 
## CHtml::listData() method
 
 
~~~
 
public static function listData($models,$valueField,$textField,$groupField='')
 
~~~
 
Generates data for dropDownList and listBox, using the format $key=>$value.
 
 
 
***
 
 
### Example 1: Generating a list data for categories
 
 
```php 
<?php 
 
     /*you can use here any find method you think 
 
     proper to return your data from db*/
 
     $models = categories::model()->findAll();
 
 
     // format models resulting using listData     
 
     $list = CHtml::listData($models, 
 
                'category_id', 'category_name');    
 
 
     print_r($list);
 
```
 
 
#### HTML Output (Example):
 
 
```php 
array("1" => "Arts", "2" => "Science", "3" => "Culture");
 
```
 
     
 
 
***
 
 
### Example 2: Generating an ordered list data for categories using findAll parameter
 
 
```php 
<?php 
 
     $models = categories::model()->findAll(
 
                 array('order' => 'category_name'));
 
 
     $list = CHtml::listData($models, 
 
                'category_id', 'category_name');    
 
 
     print_r($list);
 
```
 
 
#### HTML Output (Example):
 
 
```php 
array("1" => "Arts", "3" => "Culture", "2" => "Science");
 
```
 
 

_
[...]
```


 
***
 
 
### Example 4: Using data from db
 
 
In order to create a dropdownList with data from db, you have to combine it with listData method that will format models from db into array of $key=>$value.
 
 
This part is equal to listData Example 2:
 
 
 
```php 
// retrieve the models from db
 
$models = categories::model()->findAll(
 
                 array('order' => 'category_name'));
 
 
// format models as $key=>$value with listData
 
$list = CHtml::listData($models, 
 
                'category_id', 'category_name');
 
```
 
 
Now, we generate our dropdowList from the $list variable
 
 
 
```php 
<?php echo CHtml::dropDownList('categories', $category, 
 
              $list,
 
              array('empty' => '(Select a category'));
 
```
 
 
*** You cand find CHtml class at yii/framework/web/helpers/CHtml.php
79 0
74 followers
Viewed: 990 019 times
Version: 1.1
Category: Tutorials
Written by: jonah
Last updated by: glicious
Created on: Sep 25, 2009
Last updated: 8 years ago
Update Article

Revisions

View all history