ajax如何处理包含多个相同控件的jsp页面
jsp页面部分代码如下,实现的功能是,通过产品的代码和等级(下拉框)传入test.jsp处理页面,并返回价格到名为Price的text控件。问题是,如果在数据库查询中,结...
jsp页面部分代码如下,实现的功能是,通过产品的代码和等级(下拉框)传入test.jsp处理页面,并返回价格到名为Price的text控件。问题是,如果在数据库查询中,结果为多个产品代码和等级列表(不想把所有产品所有等级都列出来,所以就用了两次查询,第一次查出产品代码,第二次查出等级列表,但这里为简化,只用了固定的值代替),如何使用Ajax使得无论选取哪个产品的等级,都可以在相应的text控件里得到该产品,该等级的对应价格。请高手不吝赐教,能解决问题的建议都可以,感激不尽!
<html>
<head>
<script type="text/javascript">
var xmlHttp;
function createXmlHttp()
{
if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getPrice()
{
var PrdCode=document.getElementById("PrdCode").value;
var GrdCode=document.getElementById("GrdCode").value;
createXmlHttp();
xmlHttp.onreadystatechange=writePrice;
xmlHttp.open("GET","test.jsp?PrdCode="+PrdCode+"&GrdCode="+GrdCode,true);
xmlHttp.send(null);
}
function writePrice()
{
if(xmlHttp.readyState==4)
{
var price=xmlHttp.responseText;
document.getElementById("Price").value=price;
}
}
</script>
</head>
<body>
<input type="text" id="PrdCode" name="PrdCode" value="1000000079"/>
<select id="GrdCode" name="GrdCode" onblur="getPrice()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<input type="text" id="Price" name="Price" readonly="readonly"/>
<br/>
<input type="text" id="PrdCode" name="PrdCode" value="1000000080"/>
<select id="GrdCode" name="GrdCode" onblur="getPrice()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<input type="text" id="Price" name="Price" readonly="readonly"/>
<br/>
</body>
</html> 展开
<html>
<head>
<script type="text/javascript">
var xmlHttp;
function createXmlHttp()
{
if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
else
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function getPrice()
{
var PrdCode=document.getElementById("PrdCode").value;
var GrdCode=document.getElementById("GrdCode").value;
createXmlHttp();
xmlHttp.onreadystatechange=writePrice;
xmlHttp.open("GET","test.jsp?PrdCode="+PrdCode+"&GrdCode="+GrdCode,true);
xmlHttp.send(null);
}
function writePrice()
{
if(xmlHttp.readyState==4)
{
var price=xmlHttp.responseText;
document.getElementById("Price").value=price;
}
}
</script>
</head>
<body>
<input type="text" id="PrdCode" name="PrdCode" value="1000000079"/>
<select id="GrdCode" name="GrdCode" onblur="getPrice()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<input type="text" id="Price" name="Price" readonly="readonly"/>
<br/>
<input type="text" id="PrdCode" name="PrdCode" value="1000000080"/>
<select id="GrdCode" name="GrdCode" onblur="getPrice()">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
<input type="text" id="Price" name="Price" readonly="readonly"/>
<br/>
</body>
</html> 展开
2个回答
展开全部
document.getElementById("Price").value=price;
自己定义一个数据结构
比如返回的price是这样的:PrdCode,Price
上面这句就改为:
var temp = price.split(',');
document.getElementById("PrdCode").value=temp[0];
document.getElementById("Price").value=temp[1];
如果还要区分,可以修改数据结构,前台解析
另外,你页面元素的命名也有问题,同id不能出现两个
自己定义一个数据结构
比如返回的price是这样的:PrdCode,Price
上面这句就改为:
var temp = price.split(',');
document.getElementById("PrdCode").value=temp[0];
document.getElementById("Price").value=temp[1];
如果还要区分,可以修改数据结构,前台解析
另外,你页面元素的命名也有问题,同id不能出现两个
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询