/** * 构建下拉列表 - 采用数据库作为数据 * * @params str $name 下拉列表的名称和ID * @params str $table 数据库表 * @params arr $fields 作为下拉列表项的值和文本的字段:array( '$value_fields' => '$text_fields' ) * @params str $where SQL中的WHERE条件 * @params str $selected 选中的值 * @params arr $appends 追加到顶部的下拉项 * @params arr $filter 需要过滤掉的Key值 * @params bol $contain Key值的过滤方式 - true表示包含,false表示不包含 */ function ddl_db($name, $table, $fields, $where = '', $selected = '', $appends = array(), $attribs = array(), $filter = array(), $contain = false) { /* 初始化 */ $items = array(); /* 下拉列表顶部项 */ if (is_array($appends)) { if (isset($appends['value']) && isset($appends['text'])) { $appends = array(array('value' => $appends['value'], 'text' => $appends['text'])); } foreach ($appends as $i => $item) { if (isset($item['value']) && isset($item['text'])) { $items[] = $item; } } } /* 下拉列表项 */ $vfd = key($fields); $tfd = $fields[$vfd]; $sql = "SELECT `{$vfd}`, `{$tfd}` FROM `{$table}`" . (empty($where) ? '' : ' WHERE ' . $where); $rows = $GLOBALS['db']->getAll($sql); foreach ($rows as $r) { if ($contain == true && !in_array($r[$vfd], $filter)) { continue; } if ($contain == false && in_array($r[$vfd], $filter)) { continue; } $items[] = array('value' => $r[$vfd], 'text' => f($r[$tfd], 'html')); } $formc = new Formc(); return $formc->ddl($name, $items, array_merge(array('selected' => $selected), $attribs)); }
/** * 下拉列表 - 所有管理员列表 * * @params str $name 下拉列表名称 * @params mix $selected 下拉列表选中项 * @params arr $appends 下拉列表追加项 * @params arr $attribs 下拉列表属性 */ function ddl_all_admin($name, $selected = '', $appends = array(), $attribs = array()) { /* 初始化 */ $items = array(); /* 所有管理员 */ $all_admin = all_admin(); /* 下拉列表顶部项 */ if (is_array($appends)) { if (isset($appends['value']) && isset($appends['text'])) { $appends = array(array('value' => $appends['value'], 'text' => $appends['text'])); } foreach ($appends as $i => $item) { if (isset($item['value']) && isset($item['text'])) { $items[] = $item; } } } /* 下拉列表项 */ foreach ($all_admin as $r) { $items[] = array('value' => $r['admin_id'], 'text' => f($r['name'], 'html')); } $fc = new Formc(); return $fc->ddl($name, $items, array_merge(array('selected' => $selected), $attribs)); }
/** * 下拉列表 - 模块 * * @params str $name 下拉列表名称 * @params mix $selected 下拉列表选中项 * @params arr $appends 下拉列表追加项 * @params arr $attribs 下拉列表属性 */ function ddl_module($name, $selected = '', $appends = array(), $attribs = array()) { global $_LANG; /* 初始化 */ $items = array(); /* 所有模块 */ $modules = all_module(); /* 下拉列表顶部项 */ if (is_array($appends)) { if (isset($appends['value']) && isset($appends['text'])) { $appends = array(array('value' => $appends['value'], 'text' => $appends['text'])); } foreach ($appends as $i => $item) { if (is_array($item) && isset($item['value']) && isset($item['text'])) { $items[] = $item; } } } /* 下拉列表项 */ foreach ($modules as $r) { $text = f(str_repeat(' ', ($r['lvl'] - 1) * 4) . $r['name'], 'html'); $items[] = array('value' => $r['module_id'], 'text' => $text); } $fc = new Formc(); return $fc->ddl($name, $items, array_merge(array('selected' => $selected), $attribs)); }