给select赋值问题

wangwangwang12312312 2011-05-20 11:12:40
从数据库中读取一个值,将这个值赋给网页SESECT元素初始的显示值.怎么写代码?请高手指教.

我的SELECT元素是关联的两个,是用JS编写的二级联动菜单.没有OPTION项.
...全文
458 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
初始条件:当打开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>
www_7di_net 2011-05-21
  • 打赏
  • 举报
回复
这是我前两天刚写的一个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;
}
}
仲兴轩 2011-05-20
  • 打赏
  • 举报
回复
拿省市的那个联动来说

页面加载完后,

运行
document.forms[0].省.value = "你数据库里传来的值(省)";
// 这个省的值变化应该就改变了市的值咯, 执行一下,

然后
document.forms[0].市.value = "你数据库里传来的值(市)";
乌镇程序员 2011-05-20
  • 打赏
  • 举报
回复
详细描述一下你的需求吧,不太理解什么叫没有option的select?

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧