0
我想填充一個使用AJAX的選擇框,從兩個頁面獲取其數據。 mainPage.jsp
具有下面的代碼..使用AJAX從兩頁數據填充網頁
<td>Product</td>
<td><select name="selProduct" id="selProduct" onchange='loadXMLDoc();' >
<option value="-1"> Select Product</option>
<option value="0"> JSA Three Wheelers</option>
<option value="1"> Rotavators</option>
<option value="2"> ACE Tractors</option>
<option value="3"> BCS Reaper Binder</option>
<option value="4"> Lubi Pumps</option>
<option value="5"> New Golden Punjab Thresers</option>
</select>
</td>
</tr>
<tr>
<td>Model</td>
<td>
<div id="myDiv">
</div>
</td>
</tr>
功能loadXMLDoc()
是
function loadXMLDoc()
{
function byId(e) {return document.getElementById(e);}
var sel=byId('selProduct');
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","NewFile.jsp?str="+sel.value,true);
xmlhttp.send();
}
文件NewFile.jsp
是
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<% //String selProduct= request.getParameter("str");
//int valProduct= Integer.parseInt(selProduct);
String sel= request.getParameter("str");
int valProduct= Integer.parseInt(sel);
%>
<script>
function loadXMLDoc1()
{
function byId(e) {return document.getElementById(e);}
var selModel=byId('selModel');
alert(selModel.value);
var selProduct=<%=valProduct%>;
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("divRate").innerHTML=xmlhttp.responseText;
//document.getElementsByName(txtTest).Text=xmlhttp.responseText;
}
}
xmlhttp.open("GET","selPrice.jsp?selProduct="+selProduct+"&"+"selModel="+selModel.value,true);
xmlhttp.send();
}
</script>
</head>
<body>
<select name="selModel1" id="selModel" onchange='loadXMLDoc1();'>
<option value="-1">select Model </option>
<%if(valProduct==0){ %>
<option value="1">Victory 1000 DIII Passenger</option>
<option value="2">Victory plus 1000 DIII Passenger </option>
<option value="3">Victory 1000 DIII Loader </option>
<option value="4">Victory 1000 DIII Chassis </option>
<option value="5">Victory 1360 DIII Passenger </option>
<option value="6">Victory 1360 DIII Window Dx Passenger </option>
<option value="7">Victory 1360 DIII Loader </option>
<%}
else if (valProduct==1){%>
<option value="1">SRT-6/540 (SEMI CHAMPION)</option>
<option value="2">SRT-5.5/1000 (SEMI CHAMPION)</option>
<option value="3">SRT-6/1000 (SEMI CHAMPION)</option>
<option value="4">SRT-7/1000 (SEMI CHAMPION)</option>
<option value="5">SRT-5.5/MS LIGHT SERIES (1.65/1000)</option>
<option value="6">SRT-6/MS LIGHT SERIES (1.85/1000)</option>
<option value="7">SRT-7/MS LIGHT SERIES (2.05/1000)</option>
<%}
else if (valProduct==2){%>
<option value="1">Ace Tractors</option>
<option value="2">Ace Tractors</option>
<%}
else if (valProduct==3){%>
<option value="1">Complete Reaper Binder</option>
<option value="2">Tractor Mounted Reaper Binder</option>
<%}
else if (valProduct==4){
%>
<option value="1">MDH-50A (HP-0.5) Self Priming</option>
<option value="2">MDH-27A (HP-0.5) Self Priming</option>
<option value="3">MDH-27ASF (HP-1.0) Self Priming</option>
<option value="4">MCJ051SP (HP-0.5) Shallow Well Jet</option>
<option value="5">MCJ101SP (HP-1.0) Shallow Well Jet</option>
<%} %>
</select>
<div id="divRate">
</div>
</body>
</html>
另外selPrice.jsp
是。
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<% String selModel= request.getParameter("selModel");
String selProduct=request.getParameter("selProduct");
//int valModel=1;
int valProduct= Integer.parseInt(selProduct);
valModel= Integer.parseInt(selModel);
System.out.println(selModel);
System.out.println(valProduct);
System.out.println(valModel);
System.out.println(session.getAttribute("name"));
%>
<%if(valProduct ==0 && valModel==1){ %>
<input type="text" value="173000" readonly="readonly">
<%}
else if(valProduct ==0 && valModel==2){ %>
<input type="text" readonly="readonly" value="183000">
<%}
else if (valProduct==1 && valModel==1){%>
<input type="text" readonly="readonly" value="400000" >
<%}
else if (valProduct==1 && valModel==2){%>
<input type="text" readonly="readonly" value="450000">
<%} %>
</body>
</html>
這應該像我選擇的產品,根據其值,模特們從 NewFile.jsp
填充。這工作正常。在NewFile.jsp
中,在選擇型號時,價格將使用值selProduct
和selModel
填充。當我運行NewFile.jsp
時,此價格正在填充,但是當我運行mainFile.jsp
時,selModel
正在從NewFile.jsp
通過爲null
至selPrice.jsp
。所以我被困在那裏。我可能在這裏做錯了事,但我無法發現它。所以任何幫助在這裏都會很棒。
謝謝
哪裏是e?你傳遞給函數,通過Id ???你在哪裏通過?函數loadXMLDoc() 函數byId(e){return document.getElementById(e);}' – Divya 2014-10-17 13:38:43
e是通用的。每當id傳入byID(id)時,它就會返回值。 – 2014-10-25 06:06:34
是的,我可以看到從我們的代碼,但它似乎值e檢查it.as你只調用loadxmldoc函數只有你會在這個價值,我認爲你hvnt收到 – Divya 2014-10-25 12:18:19