我对 Ajax 有一个问题:如果该书已经存在,我想在有人插入一本书的 isbn 时填写表格。
我尝试了这个解决方案,但它不起作用
这是表格。
<form action="/Libreria_Tweb/Operation" method="post" enctype="multipart/form-data" name="operation" onsubmit="return controlla()">
<p class="submit">
<select name="tipoInfo" onchange="showDiv(this)">
<option value="addBook"> Inserisci libro </option>
<option value="alterBook"> Modifica libro </option>
</select>
</p>
<div id="alter" style="text-align: left; display: none;"> <p>
<label>Vecchio ISBN </label> <input type="text" name="oldIsbn" />
</p></div>
<p>
<label>ISBN:</label> <input type="text" name="isbn" onchange="makeRequest(this.value)"/>
</p>
<p>
<label>Titolo:</label> <input type="text" name="titolo" />
</p>
<p>
<label>Autore: </label><input type="text" name="autore" />
</p>
<p>
<label>Categoria: </label>
<select name="categoria">
<option value="musica">Musica</option>
<option value="letteratura">Letteratura</option>
<option value="cucina">Cucina</option>
<option value="informatica">Informatica</option>
</select>
</p>
<p>
<label>Prezzo:</label> <input type="text" name="prezzo" />
</p>
<p>
<label>Copertina:</label> <input type="file" name="copertina" />
</p>
<p class="submit">
<input type="submit" name="operation" value="Invia" />
<input type="reset" value="Reset" />
</p>
</form>
这是方法makeRequest(isbn):
function makeRequest(isbn) {
var xmlHttpReq = getXMLHttpRequest();
xmlHttpReq.onreadystatechange = getReadyStateHandler(xmlHttpReq);
xmlHttpReq.open("POST", "/Operation?operation=getBook&isbn="+isbn, true);
xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttpReq.send(null);
}
这是获取数据的 Servlet:
Object[] arr = dbm.getElemById(request);
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print(arr);
其中 getElemById 返回一个包含所有书籍数据的数组。
PS:我不能使用 JQuery、Json 等......,只能使用 Ajax 和“简单”Java。
(对不起我的英语不好)