在multipart / form-data中使用ajax填充表单

时间:2013-09-03 10:23:06

标签: java javascript ajax forms servlets

我遇到了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。

(抱歉我的英文)

0 个答案:

没有答案