示例#1
0
/**
 * 构建下拉列表 - 采用数据库作为数据
 *
 * @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));
}
示例#2
0
/**
 * 下拉列表 - 所有管理员列表
 *
 * @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));
}
示例#3
0
/**
 * 下拉列表 - 模块
 *
 * @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));
}