标题:列表多项选择问题,急
只看楼主
netpass
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-4-5
 问题点数:0 回复次数:2 
列表多项选择问题,急
我想建立一个可以多选的列表项。
左右各一个,在一个页面里面,左边的列表项一次列出所有我需要的内容,然后按住CTRL键可以选择多项,点一下确定就可以在当前页面提交到右边的列表项,这样的功能怎么实现。我看动易的网站,就有这样的功能,但是不知道代码咋地写。大家帮忙,有点急。或是其他的多选菜单也许,最想知道的是,多选实现后,写入数据库的时候,怎么来接受这个多选,怎么写入数据库,而且读出来的时候怎么一个个读出来啊?

[[it] 本帖最后由 netpass 于 2008-4-8 09:50 编辑 [/it]]
搜索更多相关主题的帖子: 选择问题 列表 
2008-04-08 09:44
zfjyyzycl
Rank: 2
等 级:论坛游民
帖 子:239
专家分:10
注 册:2006-4-15
得分:0 
<script language=javascript>
// 加入已选
function Add() {
    var sel1=document.myform.d_b1;
    var sel2=document.myform.d_b2;
    if (sel1.selectedIndex<0) {
        alert("请选择一个待选按钮!");
        return;
    }
    sel2.options[sel2.length]=new Option(sel1.options[sel1.selectedIndex].innerHTML,sel1.options[sel1.selectedIndex].value);
}

// 从已选中删除
function Del() {
    var sel=document.myform.d_b2;
    var nIndex = sel.selectedIndex;
    var nLen = sel.length;
    if (nLen<1) return;
    if (nIndex<0) {
        alert("请选择一个已选按钮!");
        return;
    }
    for (var i=nIndex;i<nLen-1;i++) {
        sel.options[i].value=sel.options[i+1].value;
        sel.options[i].innerHTML=sel.options[i+1].innerHTML;
    }
    sel.length=nLen-1;
}

// 排序:向上移动
function Up() {
    var sel=document.myform.d_b2;
    var nIndex = sel.selectedIndex;
    var nLen = sel.length;
    if ((nLen<1)||(nIndex==0)) return;
    if (nIndex<0) {
        alert("请选择一个要移动的已选按钮!");
        return;
    }
    var sValue=sel.options[nIndex].value;
    var sHTML=sel.options[nIndex].innerHTML;
    sel.options[nIndex].value=sel.options[nIndex-1].value;
    sel.options[nIndex].innerHTML=sel.options[nIndex-1].innerHTML;
    sel.options[nIndex-1].value=sValue;
    sel.options[nIndex-1].innerHTML=sHTML;
    sel.selectedIndex=nIndex-1;
}

// 排序:向下移动
function Down() {
    var sel=document.myform.d_b2;
    var nIndex = sel.selectedIndex;
    var nLen = sel.length;
    if ((nLen<1)||(nIndex==nLen-1)) return;
    if (nIndex<0) {
        alert("请选择一个要移动的已选按钮!");
        return;
    }
    var sValue=sel.options[nIndex].value;
    var sHTML=sel.options[nIndex].innerHTML;
    sel.options[nIndex].value=sel.options[nIndex+1].value;
    sel.options[nIndex].innerHTML=sel.options[nIndex+1].innerHTML;
    sel.options[nIndex+1].value=sValue;
    sel.options[nIndex+1].innerHTML=sHTML;
    sel.selectedIndex=nIndex+1;
}

// 提交处理
function checkform() {
    var sel=document.myform.d_b2;
    var nLen = sel.length;
    var str="";
    for (var i=0;i<nLen;i++) {
        if (i>0) str+="|";
        str+=sel.options[i].value;
    }
    document.myform.d_button.value=str;
    return true;
}

</script>

<table border=0 cellpadding=5 cellspacing=0 align=center>
    <form action='*****' method=post name=myform onsubmit='return checkform()'>
    <tr align=center>
        <td>
            <select name='d_b1' size=20 style='width:200px' ondblclick='Add()'>
                <option value='选项'>选项</option>
                ......
            </select>
        </td>
        <td>
            <input type=button name=b1 value=' → ' onclick='Add()'>
            <br>
            <br>
            <input type=button name=b1 value=' ← ' onclick='Del()'>
        </td>
        <td>
            <select name='d_b2' size=20 style='width:200px' ondblclick='Del()'>
            </select>
        </td>
        <td>
            <input type=button name=b3 value='↑' onclick='Up()'>
            <br>
            <br>
            <br>
            <input type=button name=b4 value='↓' onclick='Down()'>
        </td>
    </tr>
        <input type=hidden name='d_button' value=''>
        <tr>
            <td colspan=4 align=right><input type=submit name=b value=' 保存设置 '></td></tr>
        </td>
    </tr>
    </form>
</table>
2008-04-08 10:15
netpass
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-4-5
得分:0 
可以用CTRL键多选吗?这样提交后,怎么写入数据库,读出来是用数组读出来吗?不好意思ASP新手大家帮帮忙!
2008-04-08 14:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-207665-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.046633 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved