2012-02-02 6 views
0

Хорошо, я нашел решение, касающееся моей проблемы. У меня есть три текстовых поля на моей странице jsp, когда я вводю какие-либо данные в первом текстовом поле, тогда управление направляется на get.jsp для извлечения данных из базы данных и заполнения второго текстового поля. Но я хочу, чтобы эти данные поступали из первого и второго текстовых полей за один раз до get.jsp, чтобы автоматически заполнить 3-е текстовое поле, но я пытался, но данные собирались индивидуально из 1-го или 2-го текстовых полей.автоматическое заполнение текстовых полей в jsp

---- auto.jsp ----------

<%@page import="java.sql.*"%> 
<html> 
<head> 
<script language="javascript" type="text/javascript"> 
var xmlHttp 
var xmlHttp 
function showState(str){ 
if (typeof XMLHttpRequest != "undefined"){ 
xmlHttp= new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject){ 
xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
if (xmlHttp==null){ 
alert ("Browser does not support XMLHTTP Request") 
return 
} 
var url="get.jsp";//goes to get.jsp 
url += "?count=" +str; 
xmlHttp.onreadystatechange = stateChange; 
xmlHttp.open("GET", url, true); 
xmlHttp.send(null); 
} 
function stateChange(){ 
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
document.getElementById("country").innerHTML=xmlHttp.responseText; 
} 
} 
</script> 
</head> 
<body> 
<input id="name" type="text" name="name" onkeyup="showState(this.value)"> 
<br> 
<div id='country'> 
</div> 
</body> 
</html> 

-------- get.jsp ----------- -

<%@page language="java" import ="java.sql.*" %> 
<% 
String name=request.getParameter("count"); 
String buffer="<div>"; 
//Got value from database 


while(rs.next()){ 
buffer=buffer+rs.getString(2)+"<br>"; 
} 
buffer=buffer+"</div>"; 
response.getWriter().println(buffer); 
%> 

Здесь request.getParameter ("count"); Я получаю только одно значение текстового поля, но как я могу получить несколько значений из auto.jsp, введя данные в первый и второй текстовые поля.

+0

Любая помощь, пожалуйста? – Tom

ответ

1

Просто вызовите функцию showState() в вашей onkeyup и в функции javascript добавьте значение текстового поля.

var url="get.jsp";//goes to get.jsp 
url += "?count=" +document.getElementById(<first textbox's id>).value; 
url += "&secondVal="+document.getElementById(<second textbox's id>).value; 

и вы можете получить значение, как вы делали

String secondVal=request.getParameter("secondVal"); 
+0

спасибо за ответ. Я дал первый текстовый поле id как textbox1 и 2-й текстовый поле id как textbox2, но он показывает ошибку в функции stateChange() { if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { document.getElementById ("страна"). InnerHTML = xmlHttp.responseText; } } Я написал вот так: var url = "get.jsp"; // переходит к get.jsp url + = "? Count =" + document.getElementById (); url + = "& secondVal =" + document.getElementById (); Как это? – Tom

+0

означает, что это означает правильное имя :), вы должны указывать как 'document.getElementById (" textbox1 ");' и 'document.getElementById (" textbox2 ");' –

+0

ok..but все еще не работает, имена текстовых полей должны быть одинаковыми? Tom

Смежные вопросы