2015-07-10 6 views
0

Я хочу получать данные с помощью ajax. Но при использовании этого кода результат печатает [объект HTMLInputElement]. Можно ли изменить объект на строку?Ajax result print [object HTMLInputElement]

Вот мой код в JSP, что использовать ajax.

$('select#product').change(function() { 

     var param = "code=" + $('#product').val(); 

     $.ajax({ 
      url : 'add_products/add_products.jsp', 
      contentType : "application/x-www-form-urlencoded; charset=UTF-8", 
      data : param, 
      type : 'POST', 
      dataType : 'text', 
      success : function(data, textStatus, jqXHR){ 
       $('#color').val(color); 
       $('#price').val(price); 
      } 
     }); 
    }); 
... 
<td> 
    <input type="text" id="color" class="form-control" name="color" /> 
</td> 
<td> 
    <input type="text" id="price" class="form-control" name="price" value="0" /> 
</td> 

И это add_products.jsp, что получает верхний jsp.

product_code = request.getParameter("code"); 

try { 
    query = "select * from new_product where product_code='"+product_code+"'"; 
    rs = stmt.executeQuery(query); 
    while (rs.next()) { 
     size = rs.getString("sizes"); 
     color = rs.getString("color"); 
     price = rs.getString("price_cny"); 

     out.println(color); 
     out.println(price); 

    } 
} catch (SQLException e) { 
    out.println(e); 
} finally { 
} 

Спасибо.

+0

Используйте JSON.stringify (данные) для преобразования объекта в строку в JQuery. – Ila

+0

Где в этом коде вы печатаете результаты? «результат печатает» – bassxzero

+0

@bassxzero Мой результат - «данные», но я хочу получать данные, это два. Поэтому я не пытался использовать переменную результата (data), но «color», «price» – Dayoung

ответ

1

Изменить код сервера это ...

product_code = request.getParameter("code"); 

try { 
    query = "select * from new_product where product_code='"+product_code+"'"; 
    rs = stmt.executeQuery(query); 
    while (rs.next()) { 
     size = rs.getString("sizes"); 
     color = rs.getString("color"); 
     price = rs.getString("price_cny"); 

     out.println(color+"_"+price);    //concatenate 2 values 

    } 
} catch (SQLException e) { 
    out.println(e); 
} finally { 
} 

И ваш код клиента к этому ...

$('select#product').change(function() { 

     var param = "code=" + $('#product').val(); 

     $.ajax({ 
      url : 'add_products/add_products.jsp', 
      contentType : "application/x-www-form-urlencoded; charset=UTF-8", 
      data : param, 
      type : 'POST', 
      dataType : 'text', 
      success : function(data, textStatus, jqXHR){ 
       var values = data.split("_");  //get your 2 values seperated 
       $('#color').val(values[0]); 
       $('#price').val(values[1]); 
      } 
     }); 
    }); 
+0

Он работает !! Спасибо очень много Shrinivas Shukla :) – Dayoung

+0

С удовольствием помогите :) –

0

Я никогда не кодировал JSP, поэтому будьте добрыми. Попробуйте это. Он основан на этом примере. http://codesstore.blogspot.com/2011/12/json-with-jquery-jsp-servlets.html

В принципе, вы хотите найти способ вернуть объект json.

Ajax

$('select#product').change(function() { 

    var param = "code=" + $('#product').val(); 

    $.ajax({ 
    url : 'add_products/add_products.jsp', 
    contentType : "application/x-www-form-urlencoded; charset=UTF-8", 
    data : param, 
    type : 'POST',    
    success : function(data, textStatus, jqXHR){ 

     try { 
     $result = $.parseJSON(data); 
     } 
     catch(error) 
     { 
     alert('Error parsing json ' + data); 
     } 

     alert(data.color); 
     alert(data.price); 

    } 
    }); 
}); 

JSP

Убедитесь, что вы импорта для поддержки JSon.

import org.json.JSONObject; 
product_code = request.getParameter("code"); 

try { 
    query = "select * from new_product where product_code='"+product_code+"'"; 
    rs = stmt.executeQuery(query); 

    JSONObject json = new JSONObject(); 

    while (rs.next()) { 
     size = rs.getString("sizes"); 
     color = rs.getString("color"); 
     price = rs.getString("price_cny"); 

     json.put("color", color); 
     json.put("pr", price); 
    } 

     out.println(json); 
} catch (SQLException e) { 
    out.println(e); 
} finally { 
} 
+0

Спасибо. Но результат «undefind» .. – Dayoung

0

Попробуйте это обновления. Асинхронность, успех блока:

success : function(data, textStatus, jqXHR){ 
    $('#color').val(data.color); 
    $('#price').val(data.price); 
} 

add_products.jsp:

На этой линии в верхней части JSP.

<%@ page contentType="application/json; charset=UTF-8" 
    pageEncoding="UTF-8"%> 

Выход JDBC результат:

out.print("{"); 
if (rs.next()) {//note, replaced with while loop 
    out.print("\"sizes\":" + rs.getString("sizes") + ","); 
    out.print("\"color\":" + rs.getString("color") + ","); 
    out.print("\"price\":" + rs.getString("price_cny")); 
} 
out.print("}");