1

私は ajax の概念に非常に慣れていないので、ページを更新せずにフォームを送信したい

アヤックス

function ajaxFunction() {
  if(xmlhttp) { 
   var txtname = document.getElementById("txtname");
    xmlhttp.open("POST","Listservlet",true);
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("txtname=" + txtname.value);
  }
}

function handleServerResponse() {
   if (xmlhttp.readyState == 4) {
     if(xmlhttp.status == 200) {
       document.fname.message.innerHTML=xmlhttp.responseText;
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}

JSP

<form name="fname" action="Listservlet" method="post">
<input type="text" name="txtname" id="txtname" />
<input type="button" value="Submit"  onclick="ajaxFunction();" />
<div id="message"></div>
</form>

サーブレット

public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
  String name = null;
  PrintWriter out = response.getWriter();
  if(request.getParameter("txtname") != null) {
   name = request.getParameter("txtname");
  }
                else {
                       name = "";
                }
           out.println("You have successfully made Ajax Call:" + name);
 }

この ajax のアイデアは Google から入手しましたが、機能していません。ボタンをクリックしても何も表示されません。私を助けてください。

4

2 に答える 2

2

交換

 document.fname.message.innerHTML=xmlhttp.responseText;

document.getElementById("message").innerHTML=xmlhttp.responseText;
于 2012-07-02T11:16:22.530 に答える
1

どこがうまくいかないかを見つけるための一般的な手順:

  • ブラウザー デバッガーを使用して、ajax 要求が正常に送信されたかどうかを確認します。
  • 受信サーブレットをデバッグして、リクエストが実際にサーブレットに配信されたかどうかを確認します。
  • ブラウザー デバッガーを使用して、応答テキストが必要かどうかを判断します。

    document.fname.message.innerHTML=xmlhttp.responseText;
    あなたの問題については、に変更する必要があると思います
    document.getElementById("message").innerHTML = xmlhttp.responseText;

    出力ストリームを閉じることも覚えておいてください

  • 于 2012-07-02T11:10:29.557 に答える