从数据库中读取一个值,将这个值赋给网页SESECT元素初始的显示值.怎么写代码?请高手指教.我的SELECT元素是关联的两个,是用JS编写的二级联动菜单.没有OPTION项.

解决方案 »

  1.   

    详细描述一下你的需求吧,不太理解什么叫没有option的select?
      

  2.   

    拿省市的那个联动来说页面加载完后,运行
    document.forms[0].省.value = "你数据库里传来的值(省)";
    // 这个省的值变化应该就改变了市的值咯, 执行一下, 然后
    document.forms[0].市.value = "你数据库里传来的值(市)";
      

  3.   

    初始条件:当打开AA.ASP文件时,通过修改菜单office1和office2的选定情况,将数据写入数据库。
    问题:当打开AA.ASP后,菜单显示的是默认的、从数据库中读取的值(代码怎么改?)。紧接着,点“提交”,让这两个默认的值重新写回数据库?这是我的关联SELECT:文件名:aa.asp
    <body>
    <form id="form1" name="form1" method="post" enctype="multipart/form-data" action=""> <script language="JavaScript" type="text/javascript">
    //ChangeSelect(上一级的值,下一级Select控件的ID值,下一级Select控件要选中的值(即value而非text),数据源数组名,默认显示字符(如:请选择...如果不写的话会用默认值填充)),第一级的上级值为0
    function ChangeSelect(ParentValue, NextId, NextSelectedValue, ArrObj, DefaultStr) {
        StrObj = eval(document.getElementById(NextId));
        StrObj.length = 0;
        //判断它是二级数据源,还是三级
        if (ArrObj.length > 0) {
            if (ArrObj[0].length == 2)
            { ArrNum = 0; }
            else
            { ArrNum = 2; }
        }
        //显示所有列表
        for (i = 0; i < ArrObj.length; i++) {
            if (i == 0) {
                if (DefaultStr == undefined) DefaultStr = "==请选择==";
                StrObj.options[StrObj.length] = new Option(DefaultStr, "");
            }
            if (ArrObj[i][1] == ParentValue) {
                StrObj.options[StrObj.length] = new Option(ArrObj[i][0], ArrObj[i][ArrNum]);
            }
        }
        //选中列表内某一项
        for (i = 0; i < StrObj.length; i++) {
            if (StrObj.options[i].value == NextSelectedValue) {
                StrObj.options[i].selected = true;
            }
        }
        //激发下一级的onchange事件以实现多级级联
        StrObj.onchange();
    }
    //公司二维数组数据源
    Office = [
    ["CategoryName","ParentCategoryName"],
    ["技术部","0"],
    ["业务部","0"],
    ["小王","技术部"],
    ["小张","技术部"],["小刘","业务部"],
    ["小黄","业务部"]
    ]
    </script>
    <select id="office1"  onchange="ChangeSelect(this.value,'office2','',Office,'---人员---')" style="width:100px"></select>
    <select id="office2" onChange="" style="width:100px"></select>
    <script language="JavaScript" type="text/javascript">
    ChangeSelect('0','office1','',Office,'---部门---')
    </script>
    <br />
    <script language="JavaScript" type="text/javascript">//获取HTML下拉菜单选定值对应的显示值,即value对应的text
    function getSelectText(selectId){    if(null==selectId || selectId.length==0){
            alert('select下拉菜单的id不应为空,请返回检查!');
            return '';
        }    var objSel = document.getElementById(selectId);    if(null == objSel){
            alert('id为' + selectId +'的下拉菜单不存在,请返回检查!');
            return '';
        }    var selectVal = objSel.value;    //获取下拉菜单的当前选定值
        
        var ops = objSel.options;    if(null==ops || ops.length==0){
            return '';
        }    for(var i=0; i<ops.length; i++){
            if(selectVal == ops[i].value){
                return ops[i].text;    //返回当前选定值对应的显示值
            }
        }    return '';
    }</script>
    <input type="submit" name="Submit" value="提交" />
    </form>
    </body>
      

  4.   

    这是我前两天刚写的一个jquery插件,今天就用上了
    原文在这http://hi.baidu.com/see7di/blog/item/afce5cc2ec7a9522e5dd3ba9.html
    你去看看吧 //=================================
    //操作Select內的項目(操作類型,對象id,值)
    $.sel = function(Typ,Id,Val){
    switch (Typ.toLowerCase()){
    case "len": //得到select项的元素个数[Typ,Id]:$.sel('len','id')
    return $("#"+Id).get(0).options.length;
    break;
    case "index": //获得选中项的索引[Typ,Id]:$.sel('index','id')
    return $("#"+Id).get(0).selectedIndex;
    break;
    case "val": //取得當前value值[Typ,Id]:$.sel('val','id')
    return $("#"+Id).val();
    break;
    case "isval": //判斷是否存在某value值[Typ,Id,Val]:$.sel('isval','id','value')
    var len = $("#"+Id).get(0).options.length;
    for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].value == Val){return true;break;}}
    return false;break;
    case "indexval": //取得索引值上的value值[Typ,Id,Val]:$.sel('isval','id','value')
    return $("#"+Id+" option:eq("+Val+")").val();
    break;
    case "allval": //取得所有的value值[Typ,Id,Val]:$.sel('allval','id','|')
    var len = $("#"+Id).get(0).options.length;_val='';
    for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].value;}
    _val=_val+Val+'';return _val;
    break;
    case "txt": //取得當前text值[Typ,Id]:$.sel('txt','id')
    return $("#"+Id).get(0).options[$("#"+Id).get(0).selectedIndex].text;
    break;
    case "istxt": //判斷是否存在某text值[Typ,Id,Val]:$.sel('isval','id','value')
    var len = $("#"+Id).get(0).options.length;
    for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){return true;break;}}
    return false;break;
    case "alltxt": //取得所有的value值[Typ,Id,Val]:$.sel('alltxt','id','|')
    var len = $("#"+Id).get(0).options.length;_val='';
    for(var i=0;i<len;i++){_val+=Val+$("#"+Id).get(0).options[i].text;}
    _val=_val+Val+'';return _val;
    break;
    case "add": //添加项目[Typ,Id,Val]:$.sel('add','id','<option value=33>请选择</option>')
    $("#"+Id).prepend(Val);
    break;
    case "insert": //在指定位置插入项目[Typ,Id,Val]:$.sel('insert','id','<option value=33>请选择</option>')
    $("#"+Id+" option:selected").before(Val);$("#"+Id).get(0).selectedIndex = ($("#"+Id).get(0).selectedIndex-1);
    break;
    case "del_ins": //將id前半段的內容移動到id後半段的選中位置之前(被操作項目必須有默認選擇項)[Typ,Id]:$.sel('del_ins','id1|id2')
    var Arr=new Array();Arr=Id.split("|");
    if(!$("#"+Arr[0]+" option:selected").val() || !$("#"+Arr[0]+" option:selected").text()){return;}
    Val="<option value='"+$("#"+Arr[0]+" option:selected").val()+"'>"+$("#"+Arr[0]+" option:selected").text()+"</option>";
    oi=$("#"+Arr[0]).get(0).selectedIndex;
    $("#"+Arr[0]+" option:selected").remove();
    $("#"+Arr[0]).get(0).selectedIndex = (oi-1<0)?0:(oi-1);
    if($("#"+Arr[1]+"").get(0).options.length<1 || $("#"+Arr[1]).get(0).selectedIndex<0){
    $("#"+Arr[1]+"").prepend(Val);
    $("#"+Arr[1]).get(0).selectedIndex = 0;
    }else{
    $("#"+Arr[1]+" option:selected").before(Val);
    $("#"+Arr[1]).get(0).selectedIndex = ($("#"+Arr[1]).get(0).selectedIndex-1);
    }
    break;
    case "selindex": //預設某項為選中(參照索引值)[Typ,Id,Val]:$.sel('selindex','id','index')
    $("#"+Id).get(0).selectedIndex = Val;
    break;
    case "selval": //預設某項為選中(參照Value的值)[Typ,Id,Val]:$.sel('selval','id','value')
    $("#"+Id).get(0).value=Val;
    break;
    case "seltxt": //預設某項為選中(參照Text的值)[Typ,Id,Val]:$.sel('seltxt','id','text')
    var len = $("#"+Id).get(0).options.length;
    for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).options[i].selected = true;break;}}
    break;
    case "selall": //選擇全部[Typ,Id]:$.sel('selall','id')
    var len = $("#"+Id).get(0).options.length;
    for(var i=0;i<len;i++){$("#"+Id).get(0).options[i].selected = true;}
    break;
    case "delindex": //刪除單個(參照索引值)[Typ,Id,Val]:$.sel('delindex','id','index')
    $("#"+Id).get(0).remove(Val);
    break;
    case "delval": //刪除單個(參照Value的值)[Typ,Id,Val]:$.sel('delval','id','value')
    $("#"+Id+" option[value='"+Val+"']").remove();
    break;
    case "deltxt": //刪除單個(參照Text的值)[Typ,Id,Val]:$.sel('deltxt','id','text')
    var len = $("#"+Id).get(0).options.length;
    for(var i=0;i<len;i++){if($("#"+Id).get(0).options[i].text == Val){$("#"+Id).get(0).remove(i);break;}}
    break;
    case "delselected": //刪除單個(被選中的對象)[Typ,Id]:$.sel('delselected','id')
    $("#"+Id+" option:selected").remove();
    break;
    case "delall": //刪除全部
    $("#"+Id).get(0).options.length = 0 ; 
    break;
    }
    }