这种在循环中的值如何获取啊?

ruoye_2008 2008-11-25 03:53:25


应该可以看到上面的图片吧。

这是一个管理员管理用户后台的简单页面。

说下基本结构:就是在一个表格里面循环罗列出每一个用户的一些信息,点后面的“删除”十分简单,只要把用户ID传出去就行;现在最关健的是,点后面的“修改”,怎样才能把前面的两个下拉列表框中的值传出去。

如果每一条记录用一个form,似乎也不行,现把相关代码给出来:
<table width="90%" border="1" cellspacing="0">
<tr>
<th>用户账号</th>
<th>用户权限</th>
<th>是否锁定</th>
<th>相关操作</th>
</tr>
<%
ArrayList list = (ArrayList)request.getAttribute("list");
Iterator it = list.iterator();
LoginVO loginVO = null;
while (it.hasNext()){
loginVO = (LoginVO)(it.next());
%>
<tr>
<td><%=loginVO.getAccount()%></td>
<td>
<!-- 这个地方其实也应该与下面一样进行判断的,但下面的感觉太复杂了,不知有没有简便一点的 -->
<select name="power">
<option value="1级">1级</option>
<option value="2级">2级</option>
<option value="3级">3级</option>
<option value="4级">4级</option>
</select>
</td>
<td>
<select name="locked">
<%
if(loginVO.getLocked().equals("未锁")){
%>
<option value="未锁" selected="selected">未锁</option>
<option value="锁定">锁定</option>
<%
} else {
%>
<option value="未锁">未锁</option>
<option value="锁定" selected="selected">锁定</option>
<% } %>
</select>
</td>
<td>
<a href="<%=path%>/con_LoginDo?loginTo=loginUpdate&id=<%=loginVO.getId()%>">修改</a> |
<a href="<%=path%>/con_LoginDo?loginTo=loginDel&id=<%=loginVO.getId()%>">删除</a>
</td>
</tr>
<%
}
}
%>
</table>

请大家帮忙看一下?
...全文
197 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lucky丶華少灬 2008-11-27
  • 打赏
  • 举报
回复
这个问题太简单了 ,想取下拉框中的值,写一个js就ok了.
js网上有很多.这里我简单的说一下.如下:
var Obj = document.getElementById("selectID");
Obj.option[Obj.selectedIndex].value
abc130314 2008-11-26
  • 打赏
  • 举报
回复
一个<tr></tr> 用一个<form></form>
sebatinsky 2008-11-25
  • 打赏
  • 举报
回复
这个页面直接修改,首先,你就把修改的那个按钮添加事件啊,不然,你就直接用一些框架或者是控件吧,不然,你这里有点乱,
因为首先:你直接在这个页面修改,你修改了页面的内容之后,怎么显示修改后的?还是直接看到的就是已经修改的?如果是这样,建议你就直接用你的锁定和未锁定的那个if,else吧,虽然多一点,不过管用,因为你不用控件的话.
其次:你这个修改本来就是应该跳转页面修改,这样又简单,又方便,何乐而不为?要得到页面的属性,我想不用我说了吧,不管用什么.就算是jsp,struts,还是其他的什么也好,都可以很方便的得到,修改后返回当前页面,也是十分的简洁明了.
希望楼主考虑一下,呵呵,个人意见,只供参考.
fengsky491 2008-11-25
  • 打赏
  • 举报
回复
写错了,不好意思,应该是td.innerHTML
fengsky491 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ruoye_2008 的回复:]
不到修改页面了,直接在这个页面传值修改
[/Quote]
是不是象.net的gridview,点修改就可以修改本行?

是的会,估计要用js实现。

思路:取得你的table,遍历其中的td(要去除你不要更新的td,比如操作列)
var tdlist = 这里是你要的tdList
for(var td in tdlist){
var tdHTML = td.HTML;
td.HTML = "<input id =" + td.id + " value =" + td.HTML + " />";
}

操作列隐藏一个更新的button,点击更新。

大概思路就这样。

嘿嘿,要下班了。
具体自己研究。
baidu_hi 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ruoye_2008 的回复:]
哦,通过JS来进行获值并跳转,开始真的还没有想到。
嗯,这个问题基本解决了。

上面还有一个问题:

Java code
<select name="locked">
<%
if(loginVO.getLocked().equals("未锁")){
%>
<option value="未锁" selected="selected">未锁</option>
<option value="锁定">锁定</option>

[/Quote]

用struts标签啊 optionsCollection
<html:select property="" name="">
<html:optionsCollection name="" label="" values=""/>
</html:select>
ruoye_2008 2008-11-25
  • 打赏
  • 举报
回复
不到修改页面了,直接在这个页面传值修改
peter8015 2008-11-25
  • 打赏
  • 举报
回复
possibleonline 写的js比较简单.
如果要再简单的方法,考虑一下jsp或JSTL标签.或引入一个struts框架,利用mvc的思想规范你的代码,实现model和view的分离.
ruoye_2008 2008-11-25
  • 打赏
  • 举报
回复
哦,通过JS来进行获值并跳转,开始真的还没有想到。
嗯,这个问题基本解决了。

上面还有一个问题:

<select name="locked">
<%
if(loginVO.getLocked().equals("未锁")){
%>
<option value="未锁" selected="selected">未锁</option>
<option value="锁定">锁定</option>
<%
} else {
%>
<option value="未锁">未锁</option>
<option value="锁定" selected="selected">锁定</option>
<% } %>
</select>


如果下拉列表框中的选项很多的话,上面这样写起来不是很费力,有没有一种简单一点的方法啊?
fulianglove 2008-11-25
  • 打赏
  • 举报
回复
修改时仍然传ID,到修改页面把信息查出来在初始化页面,你是要这功能??
不然的话就用javascript解决了
possibleonline 2008-11-25
  • 打赏
  • 举报
回复
看看这个也许就是你需要(js)
<script>
function checkVal(){
var v=document.forms["info"].elements["level"].value;
window.location.href="a.do?level="+v;
}
</script>

<form method="post" name="info">
<select name="level">
<option value="a">a</option>
<option value="b">b</option>
<option value="c">c</option>
</select>
<input type="button" value="修改" onclick="checkVal()"/>
</form>
ruoye_2008 2008-11-25
  • 打赏
  • 举报
回复
原码重新给下:


<table width="90%" border="1" cellspacing="0">
<tr>
<th>用户账号</th>
<th>用户权限</th>
<th>是否锁定</th>
<th>相关操作</th>
</tr>
<%
ArrayList list = (ArrayList)request.getAttribute("list");
Iterator it = list.iterator();
LoginVO loginVO = null;
while (it.hasNext()){
loginVO = (LoginVO)(it.next());
%>
<tr>
<td><%=loginVO.getAccount()%></td>
<td>
<!-- 这个地方其实也应该与下面一样进行判断的,但下面的感觉太复杂了,不知有没有简便一点的 -->
<select name="power">
<option value="1级">1级</option>
<option value="2级">2级</option>
<option value="3级">3级</option>
<option value="4级">4级</option>
</select>
</td>
<td>
<select name="locked">
<%
if(loginVO.getLocked().equals("未锁")){
%>
<option value="未锁" selected="selected">未锁</option>
<option value="锁定">锁定</option>
<%
} else {
%>
<option value="未锁">未锁</option>
<option value="锁定" selected="selected">锁定</option>
<% } %>
</select>
</td>
<td>
<a href="<%=path%>/con_LoginDo?loginTo=loginUpdate&id=<%=loginVO.getId()%>">修改</a> |
<a href="<%=path%>/con_LoginDo?loginTo=loginDel&id=<%=loginVO.getId()%>">删除</a>
</td>
</tr>
<%
}
}
%>
</table>

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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