1

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 のみです。

(私の英語でごめんなさい)

4

0 に答える 0