勉强将四级联动给搞定了,之所以说勉强,是因为点击第二个下拉框的时候刷新了页面。因为之前有二级联动的实例,所以可以将四个下拉框分成两份。第一个跟第二个联动,第三个跟第四个联动,当然这里用dwr实现没问题。问题就在第二个跟第三个的联动,起初我觉得问题不大,只要加一个方法就可以了,中间还是出现了很多疑问:
1、 DWRUtil.addOptions(situs, situses, "goodsId", "goodsName"); 起初在取值的时候觉得动态添加到下拉框的值应该是可以用document对象进行取值的,但不知道为什么取不到?貌似动态添加表格时可以取到js中添加的值:
//添加复选框对象
var newNameTD0=newTR.insertCell(0);
newNameTD0.setAttribute("align","center");
newNameTD0.innerHTML ='<td align="center" colspan="2" height="22"><input type="checkbox" id="oneCheck" name="oneCheck" onclick=""/></td><td><input type="hidden" id="Id" name="pkId" value="" /></td><td><input type="hidden" id="add" name="addScore" value="" /></td>';
2、第二个疑问是我从来没碰到过也没不知道怎么实现的。四级联动jsp代码如下,不知道实现,所以这里的代码没改,原样如下:
<td align="right">产品大类</td>
<td>
<select name="selectBig" id="selectBig" onchange="onloadSmall('selectBig','selectSmall');" style="width:150px">
<option value="null"></option>
<s:iterator value="#request.bigs" id="big">
<option value="${big.goodsId }">${big.goodsName }</option>
</s:iterator>
</select>
</td>
<td>产品小类</td>
<td>
<select name="selectSmall" id="selectSmall" style="width:150px" onchange="onloadProduct();">
<option value=""></option>
</select>
</td>
<td align="right">产品名称 </td>
<td>
<select id="goodsSelect" style="width:180px" onchange="onType('goodsSelect','goodsType')">
<option value="null"></option>
<s:iterator value="#request.goodses" id="g">
<option value="${g.goodsId }~!${g.goodsType }~!${g.goodsName }~!${g.unitId }~!${g.unitName }">${g.goodsName }</option>
</s:iterator>
</select>
</td>
<td align="right">型 号 </td>
<td >
<select id="goodsType" style="width:180px">
</select>
</td>
在我看来凡是用标签iterator 遍历的都是action中取出来的,大类是在前面一个请求的时候值就可以取出来了,但是后面的下拉框取值必须得在前一个点击的时候才能去取值。那么就意味着上面的商品名称是能用标签取值了,只能用这个DWRUtil.addOptions(situs, situses, "goodsId", "goodsName"); 这样取值了。但问题的关键是第三个下拉框的值是通过小类别的id取值的,那么第二个下拉框在反复取值时也可以这样获取值吗?:
var smaillId = window.document.getElementById("selectSmall").value;
var small = window.document.getElementById("selectSmall");
smallName = small.options[small.selectedIndex ].innerText;
如果能我想后面应该就简单了,那么我现在做的就变得复杂多了。但同时我又感觉今天做的这个给我一个很好的启发,把整个要实现的功能看做整体,从整体中还可以分块来做,分成的小块是很容易的。四级联动可以看成是两个两级联动,中间第二级与第三极经过了action,取值稍微复杂点。在我看来至少解决问题的思路还是挺好的。
分享到:
相关推荐
dwr实现的四级联动 dwr实现的四级联动 dwr实现的四级联动
dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动dynamic.rar dwr实现两级联动
用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动用ajax与dwr实现二级联动
dwr实现的完整的二级下拉联动列表,里面有说明,源代码。
纯JSP+DWR实现三级联动下拉选择菜单 实现无刷新联动 DWR判断用户是否存在 ajax二级联动菜单 DWR操作数据库模拟实现Google搜索效果
我以一个三级联动下拉框的例子给大家演示dwr是如何实现的。我用到的技术有spring 2.0.5 ,dwr2.0.5,hibernate3.2.3.ga,struts1.2.9,主要涉及到dwr如何调用spring管理的业务方法,以及dwr如何处理返回的数据。
今天我做了一个dwr+jsp做的例子:纯JSP+DWR实现三级联动下拉选择菜单,感兴趣的朋友可以参考下,或许本文对你有所帮助
刚学dwr 自己写的三级联动下拉框 DWR版本 3.0 数据库 Ms SQL 2005 环境 Myeclipse 8.x 有问题联系 :Mr .陈 MSN czw30110@hotmail.com
ajax技术中利用dwr框架实现二级联动菜单,页面无刷新
可实现jsp中下拉框的自动检索功能,可以随心所欲的对下拉框中的内容进行搜索
NULL 博文链接:https://wwwzhouhui.iteye.com/blog/701614
SSH+dwr实现三级级联动,从Ajava下载的,所以共享一下 由于CSDN上传限制,所以ssh的jar包让我给删掉了
通过初步学习DWR框架发现真是一个不错的AJAX框架,特别是dwr.util工具对java发数据传输特别方便。这是我写的一个dwr和spring结合在页面下拉框产生联动效果的简单例子,请多指教!
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低
选择一个商品大类,然后为商品小类填充数据,选择小类后则商品品牌列表会自动填充数据 项目是由Struts2+spring2+hibernate3构架 Struts2自带的只有二级连动下拉菜单,而且效率较低!
ajaxdwr select二级联动
ajax,spring,hibernate,dwr,实现二级联动
一个用DWR实现的三级联动的列表。希望大家都看一看学习一下!
DWR ,addOptions()填充下拉框,addRows()填充表格 希望对你的学习有所帮助,有不足的地方 感谢留言指点。。。。
NULL 博文链接:https://zyz.iteye.com/blog/1702669