日期:2014-05-17  浏览次数:20966 次

使用Yii框架CHtml助手生成城市下拉选择框

yii框架中CHtml类库主要负责协助我们使用优雅的方法生成HTML代码,例如:下拉选择列表框,完整的代码如下:

<select name=”provices”>
    <option value=”1”>北京</option>
    <option value=”2” selected=”selected”>上海</option>
    <option value=”3”>天津</option>
    <option value=”4”>武汉</option>
</select>
以上的结构,如果不使用助手,我们可能会使用以下的方法实现:

/** Controller: **/
$provices = array(
	1 => '北京',
	2 => '上海',
	3 => '天津',
	4 => '武汉'
);
$this->render( 'view', array( 'provices' => $provices, 'selected' => 2 );


/** View **/
if ( isset($provices) && $provices ):
    echo “<select name=\”provices\”>”;
    foreach ( $provices as $val => $title ):
	 if ( $val != $selected ) {
            echo “<option value=\””, $val, “\”>”, $title, “</option>”;
	}
	else {
	     echo “<option value=\””, $val, “\” selected=\”selected\”>”, $title, “</option>”;
	}
    endforeach;
    echo “</select>”;
endif;

如此的代码,不但臃肿而且容易写错,这样的代码还显得不够酷。

/** Controller **/
$provices = array(
	1 => '北京',
	2 => '上海',
	3 => '天津',
	4 => '武汉'
);
$this->render( 'view', array( 'provices' => $provices, 'selected' => 2 );

/** View **/
echo CHtml::dropDownList( 'provices', $selected, $provices );
怎么样?如此一来代码是不是清爽了不了?很酷吧?如果需要自定义idclass属性,还可以写成以下的形式:

echo CHtml::dropDownList( 'provices', $selected, $provices, array( 'id' => 'provices', 'class' => 'g-left') );


程序的完全说明如下:

publicstatic string dropDownList