【发布时间】:2015-03-31 19:28:23
【问题描述】:
我尝试了不同的输入类型组合,但如何在不弄乱图像的情况下输入消息?目的是在不刷新页面的情况下更新表格。更具体地说,当我单击图像时,它应该更新页面一侧的表格。对于那里的许多教程,我看到人们只使用 onclick 来调用 ajax 函数。有没有一个很好的例子说明我可以为图像按钮而不是普通按钮做什么?
例如:
<form name="bakery" action="TestMartController" method="post" >
<input type="hidden" name="action" value="dairy">
<input type="image" src="<%=request.getContextPath()%>/css/categories/dairy.jpg" onclick="loadXMLDoc">
我要更新的表是
<div id="refresh">
<table class="rightTable" border="1" width="70%">
<tr>
<th>Photo</th>
<th>Product and Description</th>
<th>Price</th>
<th>Orders</th>
<th>Quantity</th>
<th>Edit Quantity</th>
<th>Add Item </th>
</tr>
<c:forEach var="b" items="${bakery}">
...
</c:forEach>
</table>
</div>
Javascript 文件
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 ) {
if(xmlhttp.status == 200){
document.getElementById("refresh").innerHTML = xmlhttp.responseText;
}
else if(xmlhttp.status == 400) {
alert('There was an error 400');
}
else {
alert('something else other than 200 was returned');
}
}
};
xmlhttp.open("POST", "bakery.jsp", true);
xmlhttp.send();
}
【问题讨论】:
-
对于想要进行 AJAX 调用的新 JS 程序员,我建议使用 JS 库(例如 JQuery)来加快学习曲线。这些库已经修复了许多陷阱、问题和解决方法,您不必担心其中之一会干扰您的进度。