如何通过ajax动态为下拉框添加数据求代码

如何通过ajax动态为下拉框添加数据求代码,第1张

<select class="dosm">

</select>

<script>

        //这里用到了JQuery

    $.ajax({

        url:"请求的url路径",

           type:"post",  //post请求

           data: {}   //  后台请求数据

           success:function(data){

                //请求成功之后填充数据

//可以把data看成一个数组

                for(var i =0i<data.lengthi++){

                    $(".dosm").append("<option>" + data[i]+ "</option>")

                }

            }

    })

</script>

首先引入2个dwr的js文件

<script src='${pageContext.request.contextPath}/dwr/engine.js'></script>

<script src='${pageContext.request.contextPath}/dwr/util.js'></script>

引入的时候要注意:路径是项目路径下+web.xml文件的配置路径,比如说:在web.xml文件中这样配置

<servlet-name>dwr-invoker</servlet-name>

<servlet-class>

org.directwebremoting.servlet.DwrServlet

</servlet-class>

<servlet-mapping>

<servlet-name>dwr-invoker</servlet-name>

<url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

所有在引入的js路径中加入了dwr这个目录

jsp页面加入下面2个方法

function first(){

DWRU.getExamTitle(row3)

}

function row3(data){

DWRUtil.addOptions("title",data)

}

这样做的前提就是getExamTitle要返回一个java的Map对象

该Map的key将会被设置到jsp中<option>的value属性,Map的value降被设置到jsp中<option>的text属性

比如说:

getExamTitle方法:

Map m = new HashMap()

m.put("v1","t1")

m.put("v2","t2")

return m;

这时候jsp页面上调用first()函数之后,就会出现下面的效果:

<select id="title" name="title" onchange="examTitle()">

<option value="v1">t1</option>

<option value="v2">t2</option>

</select>

PS:

在返回的Map对象中,为了在页面上的下拉菜单列表信息出现的顺序和往map中添加元素的顺序一样,可以试用LinkedHashMap

====================

DWRUtil.removeAllOptions("title")

该语句可以删除所有title的下拉列表

DWRUtil.addOptions("title",{'':''})

该语句可以想title下拉列表中添加元素,分号前面的字符串是value值,分号后面的字符串是text值


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11948179.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存