How to filter data using a dropdown list?

A dropdown list can be used to select a value, based on which we can filter the data to be displayed. For example, the extension page has a dropdown list to filter the displayed extensions according to the selected category.

The following is the view code used for the category filter in the extension page:

<?php echo CHtml::form('','get'); ?>
Category: 
<?php echo CHtml::dropDownList('cat',
    isset($_GET['cat'])?(int)$_GET['cat']:0,
    CHtml::listData($categories,'id','name'),
    array('empty'=>'All categories', 'submit'=>'')); ?>
</form>

We first create a form which uses GET as the submission method. We then use [CHtml::dropDownList] to create the dropdown list. We specify two HTML options for the dropdown list:

  • empty: this displays an extra dropdown list item at the beginning because this item is not provided by the $categories array.
  • submit: this makes the dropdown list to be able to submit the form. If you change the current selection, the form enclosing the dropdown list will be submitted to the current page (because the submit value is empty).

Once the form is submitted, we will obtain a cat GET variable which contains the current category selection. We use this value to filter the extensions and display the corresponding results.

7 0
6 followers
Viewed: 41 966 times
Version: 1.1
Category: Tutorials
Tags:
Written by: qiang
Last updated by: Yang He
Created on: Feb 16, 2009
Last updated: 11 years ago
Update Article

Revisions

View all history