总体要求是这样的吧:选择big的下拉菜单后,从数据库获得所选择大项内的二级选项,更新到二级下拉菜单中
一级菜单没得说,直接数据库读取
二级菜单就可以用两种方法实现,
1、先预读出所有二级选项及对应一级选项的classname,待选择一级菜单后利用js更换二级菜单的选项
2、选择一级菜单后,再从数据库读取二级菜单选项,更新到二级菜单,可以隐含一个页面作为刷新,这种办法比较繁琐些
<script language=javascript>
//最先从数据库读取所有选项值
//allSel数组形如:((北京,中关村,国贸,天安门,),(上海,黄埔,))
//(北京,中关村,国贸,天安门,)---->第一个为一级选项,后面为二级选项
var allSel=new Array();//储存所有一级、二级选项,定义成全局变量
var tmpSel=new Array();//临时选项 allSeladd(tmpSel) allSel 是数组的数组,即二维数组
<%
dim bNew
rsopen "select from big,small where bigbigclassName=smallbigclassname order by bigbigclassname",1,3,conn
bNew=rs("bigbigclassname")
responsewrite "tmpSel=new Array();"
responsewrite "tmpSeladd('" & rs("bigbigclassname") & "');"
do while not rseof
if bNew<>rs("bigbigclassname") then '新城市
responsewrite "allSeladd(tmpSel);"
responsewrite "tmpSel=new Array();"
responsewrite "tmpSeladd(" & rs("bigbigclassname") & ")"
end if
rsponsewrite "tmpSeladd('" & rs("smallsmallclassname") & "');" ‘加入二级菜单
rsmovenext
loop
rsclose
%>
</script>
一级菜单:<select id=bigsel onchange=sel_chg(this)>
<%
rsopen "select from big",conn,1,3
do while not rseof
responsewrite "<option value=" & rs("id") & ">" & rs("bigclassname") & "</option>"
rsmovenext
loop
rsclose
%>
</select>
二级菜单<select id=ssel><option value=-1>请选择</option></select>
js实现更新二级菜单
<script language=javascript>
function chgOption(op_arr){ //根据参数修改下拉菜单选项
var vOptions,iii;
var obj=documentallssel; //二级菜单obj
for(iii=0;iii<objlength-1;iii++)objoptionsremove(0);//移除原二级菜单选项
for(iii=1;iii<op_arrlength;i++) { //iii=1
vOptions=documentcreateElement("option");
vOptionsvalue=iii;
vOptionstext=op_arr[iii];
objoptionsadd(vOptions);
}
}
function sel_chg(obj){ //一级菜单选择后发起替换二级菜单
//获知是哪个选项被选中
var selIdx=objselectedIndex;
//根据之前的allSel替换二级菜单
chgOption(allSel[selIdx]);//注意这里调用allSel[selIdx]
}
</script>
US OK--> 谁有PHP+JS的三级联动菜单啊~急用~~可以连接MYSQL数据库的_百度知道 var IKFromImport=false; | | G("log_in")src=" >
/可以组成一一些命令,一般是一种总体命令(session),三十也有特殊,比如是处理/POST1
! 是注释说明符号,,与其他软件的说明是一样的,ansys不作为命令读取,
此符号一般是APDL的标识符,也就是ansys的参数化语言,如do ,,,enddo等等
当然上面的都是首字符出现时
我们博客的设计是全站顶部菜单为通用菜单,调用的数据为文章的分类,那么如何将文章分类数据传递到每个页面的上下文呢?
为了将新变量自动注入模板的上下文中,Flask 中存在上下文处理器context_processor。上下文处理器在呈现模板之前运行,并且能够将新值注入模板上下文。上下文处理器是返回字典的函数。然后,对于应用程序中的所有模板,此字典的键和值将与模板上下文合并:
用法如下所示,这只是一个例子:
上面的上下文处理器是一个名为 user 的变量在模板中可用,其值为 guser。这个例子不是很有趣,因为g无论如何都可以在模板中使用,但它给出了它是如何工作的。
变量不限于值;上下文处理器还可以使函数可用于模板(因为Python允许传递函数):
上面的上下文处理器使format_price函数可用于所有模板:
您还可以将format_price构建为模板筛选器,但这演示了如何在上下文处理器中传递函数。
知道了上下文处理器的用法,实现这个功能就非常简单了!
在RealProject目录的__init__py中插入如下一个上下文回调函数
这个函数通过limit()方法查询出前6个数据,并通过一个字典返回,之后我们还需要将该回调函数注册到app的工厂函数当中!
在app/blog/templates/basehtml中循环查出我们返回的数据即可
在app/blog/viewspy文件中的index首页视图函数中实现
这个视图函数中的查询逻辑在实现文章管理的时候已经实现过,这里唯一不同的区别就是我给这个返回数据新增了一个img的属性,因为在数据库我们没有设计文章形象图字段,我们用这种方式弥补,在imgs的列表中预设一些的url地址,之后随机抽取一个赋值给img属性,这样在模板中直接调用这个img属性就会获取到的url!
在app/blog/templates/basehtml中替换相关循环数据
以上就是关于在ASP中怎么动态显示下拉式二级菜单全部的内容,包括:在ASP中怎么动态显示下拉式二级菜单、js+数据库生成三级动态tree导航菜单、通过Ajax从数据库查询的导航栏,请问怎么连接到相应的页面等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)