私は以下のようなフォームを持っています。データベースへの更新を行うには、javaサーブレットにアクションを送信する必要があります。jQueryを使わずにページをリロードせずにフォームを送信するには?
ここにページを再ロードしないでフォームを送信するにはどうすればよいですか? 現在、action="myServlet"
と私は新しいページに直接私を保ちます。私がmyServletにアクションを削除した場合、入力は自分のデータベースに追加されません。私のJavaサーブレットのビューで
<form name="detailsForm" method="post" action="myServlet"
onsubmit="return submitFormAjax()">
name: <input type="text" name="name" id="name"/> <br/>
<input type="submit" name="add" value="Add" />
</form>
、request.getParameter
は名前を見て、私のデシベルにそれを追加して進みます。私のJavaScriptの一部で
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
if (request.getParameter("add") != null) {
try {
Table.insert(name);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
は、私が
submitFormAjax
機能に
function submitFormAjax()
{
var xmlhttp;
if (window.XMLHttpRequest) {
// code for modern browsers
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
alert(xmlhttp.responseText); // Here is the response
}
var id = document.getElementById("name").innerHTML;
xmlhttp.open("POST","/myServlet",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("name=" + name);
}
があまりにも起きてから送信してください。 – nnnnnn
[ページをリロードせずにフォームを送信する]の可能な複製(http://www.windowsfiles.jp/fairu/web/index.html)を複製することができます(この場合、関数の構文エラーを修正する必要があります: //stackoverflow.com/questions/18169933/submit-form-without-reloading-page) – abhishek