2013-09-02 4 views
-1

Это код jsp, что происходит, когда я отправляю код, который он вызовет URL-адрес функции ajax и выполняет эту функцию, но при возврате он будет звонить другому URL-адресу Если я вызова Ajax с JSP, который собирается этого конкретного URL и его выполнения после этого ввода на другой URL, не возвращая результатот json не возвращает результат

<form name="frm" action="createnewcatgoryBean.jsp" onsubmit="return validatenewcat()" method="post"> 
    <table style="padding: 5px 0px 0px 8px;"> 
     <tr> 
      <th colspan="2"> 
       <div style="width: width:271px; color:red;" id="validate"></div> 
      </th> 
     </tr> 
     <tr> 
      <th>Category Name<span>:</span> 
      </th> 
      <td> 
       <input id="cat" onblur="return validatenewcat()" type="text" name="category"> 
      </td> 
     </tr> 
     <tr> 
      <th>Quotations form<span>:</span> 
      </th> 
      <td> 
       <input type="checkbox" name="quotations"> 
      </td> 
     </tr> 
     <tr> 
      <th>Agreement form<span>:</span> 
      </th> 
      <td> 
       <input type="checkbox" name="agreement"> 
      </td> 
     </tr> 
     <tr> 
      <th>Payment form<span>:</span> 
      </th> 
      <td> 
       <input type="checkbox" name="payment"> 
      </td> 
     </tr> 
     <tr> 
      <th>ETI<span>:</span> 
      </th> 
      <td> 
       <input type="checkbox" name="eti"> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2" style="float:right; padding-top:15px"> 
       <input type="submit" value="Submit" style="width: 60px;"> 
      </td> 
     </tr> 
    </table> 
</form> 

Это код JavaScript, который включает в себя запрос AJAX:

function validatenewcat() { 
    var category = document.getElementById("cat").value; 
    if (category == "") { 
     setTimeout(document.getElementById("validate").innerHTML = "!PLz Enter The Category Name", 2000); 
     return false; 
    } else { 
     var url = "catnamecheck.do?id=" + category; 
     xmlhttp.open("post", url, true); 
     xmlhttp.send(null); 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4) { 
       if (xmlhttp.status == 200) { 
        var temp = xmlhttp.responceText; 
        obj = JSON.parse(temp); 
        alert(obj); 

        if (temp != "") { 
         document.getElementById("validate").innerHTML = "!PLz Enter The Unique Category Name"; 
         document.getElementById("cat").focus(); 
         return false; 
        } 

       } 
      } 

     } 
    } 
} 

это мой код java

public Map<String, String> catuniqecheck(String id) { 
    Connection c = null; 
    PreparedStatement ps1 = null; 
    ResultSet rs1 = null; 
    String sql=null; 
    try{ 
     c = JDBCHelper.getConnection(); 
     if(c!=null) 
     { 
      Map<String, String> map = new HashMap<String, String>(); 
      sql="select * from catgory where catgoryname=?"; 
      ps1=c.prepareStatement(sql); 
      ps1.setString(1, id); 
      ps1.execute(); 
      rs1=ps1.getResultSet(); 
      if(rs1.next()) 
      { 
       System.out.println("insdide of the catuniqecheck"); 
       map.put("catgoryname",rs1.getString("catgoryname")); 
      } 
      return map; 
     } 
     else 
     { 
       System.out.println("DB connection Established"); 
       return null ; 
     } 
     } 
     catch (Exception e) { 
      // TODO: handle exception 
       return null ; 
     } 
finally{ 
      JDBCHelper.close(rs1); 
      JDBCHelper.close(ps1); 
      JDBCHelper.close(c); 
     } 
} 

это мой сервлет код

Map<String, String> result =p1.catuniqecheck(id); 
       if(result!=null) 
       { 
        System.out.println("inside success"); 
        JSONObject json = new JSONObject(); 
        json.accumulateAll(result); 
        System.out.println("inside json"+json.toString()); 
        response.setContentType("application/json"); 
        response.getWriter().write(json.toString()); 
       } 
+0

Ваше первое предложение не имеет смысла. Пожалуйста, перефразируйте его. –

+0

'var temp = xmlhttp.responceText;' должен быть 'var temp = xmlhttp.responseText;' (с s). –

+0

, который входит в другой URL-адрес, не возвращая данные в javascript. Plz help me –

ответ

0

попробовать с
obj = JSON.parse("["+temp+"]")
И тогда длина первого ответа
alert(obj[0].length);
alert(obj[0]);

bcoz когда-то ответ сам в квадратные скобки, как [{...}]

+0

эта функция не работает, когда я отправляю второй раз –