1

sendxmlRequest()メソッドを使用してeqidに基づいてテーブルから値を取得しようとしています。

 <select name="eqNAME" onchange="sendxmlRequest('GET','getEquipDetails.jsp',this.value)
 <options> ..... <options>
 </select>

これはajax.jsファイルに追加しました

//Make the XMLHttpRequest Object
var http = createRequestObject();
function sendxmlRequest(method, url,eqid){
    url = url + "?eqid="+eqid;
     if(method == 'get' || method == 'GET'){
    http.open(method,url,true);
    http.onreadystatechange = handleResponse;
    http.send(null);
    }
}    

function createRequestObject(){
    var req; try {
    // Firefox, Opera, Safari
    req = new XMLHttpRequest();
    } catch (e) {
    // Internet Explorer
    try {
    //For IE 6
    req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    //For IE 5
    req = new ActiveXObject("Microsoft.XMLHTTP");
    }
         catch (e) {
     alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
     }
   }
}
return req;

}

以下は、応答を処理するために使用されます(ajax.js内)。

function handleResponse(){
if(http.readyState == 4 && http.status == 200){
    var response = http.responseText;
}
}

これが私の'getEquipDetails.jsp'ファイルです:

<% 
String planLoc= theResult1.getString(2) == null ? "":theResult1.getString(3);
String changLoc= theResult1.getString(3) == null ? "":theResult1.getString(4)
%> 
<%
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
response.setHeader("Cache-Control", "no-cache, private, no-store, max-stale=0"); //  HTTP 1.1
%>

私の質問は、getEquipDetails.jspから値planLocとchangLocを取得し、それをresponseTextに設定して、ページのドロップダウンで更新できるようにする方法です。

またはそれについて行く他の方法はありますか?

注:テーブル取得コードはすでに処理されているため、指定していません。JSPページでplanLocとchangLocを更新したいだけです

4

1 に答える 1

1

getEquipDetails.jsp

response.getWriter() 値オブジェクトを書き込みます。

<%
response.setHeader("Pragma", "no-cache"); //HTTP 1.0
response.setDateHeader("Expires", 0); //prevents caching at the proxy server
response.setHeader("Cache-Control", "no-cache, private, no-store, max-stale=0"); //  HTTP 1.1
PrintWriter res = response.getWriter();
res.println(planLoc);
res.println(changLoc);
res.close();
%>

その後、

function handleResponse(){
  if(http.readyState == 4 && http.status == 200){
    document.getElementById("dataTable").innerHTML = http.responseText;  
    // dataTable will be id of any HTML tag where you want to display the updated value.
  }
}

例えば:

<div id="dataTable"></div>

そのため、AJAXからの応答はここで設定されます。

于 2012-04-13T10:52:31.793 に答える