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);
}
データ取得用のサーブレットは次のとおりです。
Object[] arr = dbm.getElemById(request);
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print(arr);
getElemById は、本のすべてのデータを含む配列を返します。
PS: JQuery、Json などは使用できません。Ajax と「単純な」Java のみです。
(私の英語でごめんなさい)