在jsp,想完成以下操作:
1)根据action传递给该jsp的值,通过select显示出来,已实现;
2)判断select选中了那个值(productId)
3)根据2)中的值,将productId对应的productName,和2)中选中的productId,一起传递给另一个action代码如下:
1)<select id="productionId" name="productionId">
<%java.util.List list = (java.util.List)request.getAttribute"allProduct");
if(list!=null){%>
<%for(int i=0; i<list.size(); i++){
Product product = (Product)list.get(i);%>
<option value=<%=product.getId()%>>
<%=product.getProductName()%>
</option>
<% }
}%>
<select>
2)
<script language="JavaScript" type="text/javascript" src="DatePicker/WdatePicker.js"></script>
<SCRIPT language=javascript> function changeAcceptor(productionId){
var selected = document.getElementsById("productionId");
var i=0;
for(i=0; i<selected.length;i++){
if(selected[i].checked == true){
break;
}
return i;
}
</SCRIPT>
3)
<%
int i=changeAcceptor(productionId);
//提示错误:productionId cannot be resolved,这里的productionId 是select中的id
if(list!=null){
Product product = (Product)list.get(i);
}
%>
<input type="text" name="productName" id="productName" value="<%=product.getProductName()%>"/>
问下,我2、3步思路是否可以,代码是否对了,不知道如何解决“productionId cannot be resolved,”
望高手指点,最好能给出第2步的常规代码,谢谢先
1)根据action传递给该jsp的值,通过select显示出来,已实现;
2)判断select选中了那个值(productId)
3)根据2)中的值,将productId对应的productName,和2)中选中的productId,一起传递给另一个action代码如下:
1)<select id="productionId" name="productionId">
<%java.util.List list = (java.util.List)request.getAttribute"allProduct");
if(list!=null){%>
<%for(int i=0; i<list.size(); i++){
Product product = (Product)list.get(i);%>
<option value=<%=product.getId()%>>
<%=product.getProductName()%>
</option>
<% }
}%>
<select>
2)
<script language="JavaScript" type="text/javascript" src="DatePicker/WdatePicker.js"></script>
<SCRIPT language=javascript> function changeAcceptor(productionId){
var selected = document.getElementsById("productionId");
var i=0;
for(i=0; i<selected.length;i++){
if(selected[i].checked == true){
break;
}
return i;
}
</SCRIPT>
3)
<%
int i=changeAcceptor(productionId);
//提示错误:productionId cannot be resolved,这里的productionId 是select中的id
if(list!=null){
Product product = (Product)list.get(i);
}
%>
<input type="text" name="productName" id="productName" value="<%=product.getProductName()%>"/>
问下,我2、3步思路是否可以,代码是否对了,不知道如何解决“productionId cannot be resolved,”
望高手指点,最好能给出第2步的常规代码,谢谢先
你提供的代码看不出你第三条是写在哪里的?如果是submit的目标,需要从request中getParameter这个productionId
java中不能这么调用js函数
changeAcceptor是不是想把select中的这一项选中?
如果是你的changeAcceptor好像做不到这一点,
而需要在你循环出options的时候,每次判断,当对应这个id时在这个option中加入selected='true'就行了,好像
你上面不是基本上实现了这个功能了么,不需要js
<%
Product product = null;
for(int i=0; i<list.size(); i++){
if (list.get(i).getId() == Integer.parseInt(productId))
product = (Product)list.get(i);
}
%>
Product product = null;
for(int i=0; i<list.size(); i++){
if (list.get(i).getId() == Integer.parseInt(productId))
product = (Product)list.get(i);
break;
}
%>
稍微改一下
Product product = null;
for(int i=0; i<list.size(); i++){
if (list.get(i).getId() == Integer.parseInt(productId)){
product = (Product)list.get(i);
break;
}
}
%>
这样这样,又写错了,你理解的
String productionId=request.getParameter(productionId);
啊
应该是<%java.util.List list = (java.util.List)request.getAttribute("allProduct"); 吧