- function zen_draw_pull_down_menu ( $name , $values , $default = '' , $parameters = '' , $required = false) {
- $field = '<select name="' . zen_output_string( $name ) . '"' ;
- if (zen_not_null( $parameters )) $field .= ' ' . $parameters ;
- $field .= '>' . "/n" ;
- if ( empty empty ( $default ) && isset( $GLOBALS [ $name ]) && is_string ( $GLOBALS [ $name ]) ) $default = stripslashes ( $GLOBALS [ $name ]);
- for ( $i =0, $n =sizeof( $values ); $i < $n ; $i ++) {
- $field .= ' <option value="' . zen_output_string( $values [ $i ][ 'id' ]) . '"' ;
- if ( $default == $values [ $i ][ 'id' ]) {
- $field .= ' selected="selected"' ;
- }
- $field .= '>' . zen_output_string( $values [ $i ][ 'text' ], array ( '"' => '"' , '/'' => '' ', ' < ' => ' < ', ' > ' => ' > ')) . ' </option>' . "/n" ;
- }
- $field .= '</select>' . "/n" ;
- if ( $required == true) $field .= TEXT_FIELD_REQUIRED;
- return $field ;
- }
zen_draw_pull_down_menu 函数位于 /includes/functions/html_output.php 文件,主要的作用是输出表单的下拉框。
zen_draw_pull_down_menu 函数一共有 $name, $values, $default, $parameters,$required 5个参数。
$name 是下拉框的名字,比如传递 'KWriteDropDownMenu' 给它,
- $testName = 'KWriteDropDownMenu' ;
- echo zen_draw_pull_down_menu ( $testName , ...);
就会输出:
- < select name = "KWriteDropDownMenu" >
- ...
- ...
- ...
- </ select >
$values 是选项的值,是个多维数组。其中每个子数组必须包含‘id’和‘text’这2个键名和对应的值。比如传递以下数组给 zen_draw_pull_down_menu
- $testName = 'KWriteDropDownMenu' ;
- $testArray = array ( array ( 'id' => 'first' , 'text' => '第一' ),
- array ( 'id' => 'second' , 'text' => '第二' ),
- array ( 'id' => 'third' , 'text' => '第三' ),
- array ( 'id' => 'forth' , 'text' => '第四' )
- );
- echo zen_draw_pull_down_menu ( $testName , $testArray , ...);
就会输出:
- < select name = "KWriteDropDownMenu" >
- < option value = "first" > 第一 </ option >
- < option value = "second" > 第二 </ option >
- < option value = "third" > 第三 </ option >
- < option value = "forth" > 第四 </ option >
- </ select >
$default 参数指定下拉框默认的值。不传递这个参数,则下拉框没有默认值。$default 的值必须是 $values 这个数组中某个子数组的 ‘id’键名。继续上例:
- $testName = 'KWriteDropDownMenu' ;
- $testArray = array ( array ( 'id' => 'first' , 'text' => '第一' ),
- array ( 'id' => 'second' , 'text' => '第二' ),
- array ( 'id' => 'third' , 'text' => '第三' ),
- array ( 'id' => 'forth' , 'text' => '第四' )
- );
- $testDefault = 'first' ;
- echo zen_draw_pull_down_menu ( $testName , $testArray , $testDefault , ...);
得到以下输出结果:
- < select name = "KWriteDropDownMenu" >
- < option value = "first" selected = "selected" > 第一 </ option >
- < option value = "second" > 第二 </ option >
- < option value = "third" > 第三 </ option >
- < option value = "forth" > 第四 </ option >
- </ select >
$parameters 参数用于控制 select 的外观,它会附加到 <select name="..." 的后面以及 > 之前:
- $testName = 'KWriteDropDownMenu' ;
- $testArray = array ( array ( 'id' => 'first' , 'text' => '第一' ),
- array ( 'id' => 'second' , 'text' => '第二' ),
- array ( 'id' => 'third' , 'text' => '第三' ),
- array ( 'id' => 'forth' , 'text' => '第四' )
- );
- $testDefault = 'first' ;
- $testParameters = 'class="testSelectClass"' ;
- echo zen_draw_pull_down_menu ( $testName , $testArray , $testDefault , $testParameters );
得到以下输出结果:
- < select name = "KWriteDropDownMenu" class = "testSelectClass" >
- < option value = "first" selected = "selected" > 第一 </ option >
- < option value = "second" > 第二 </ option >
- < option value = "third" > 第三 </ option >
- < option value = "forth" > 第四 </ option >
- </ select >
这样就可以控制 select 的外观和风格了。
$required 是个布尔值,有2个值:false 和 true。有兴趣的朋友可以自己试验一下。