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($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。有兴趣的朋友可以自己试验一下。