クリックラジオとサーバーで取得したqueryStringを送信して、xmlで応答を取得したい。私はほとんど解決策に近づいていますが、問題をデバッグできません。なぜそれが機能しないのですか。
<script>
$(document).ready(
function() {
$("#myCity").click(
/* $("input[type=radio][name=myCity]").click( */
function() {
var radioCity = $('input:radio[name=myCity]:checked').val();
/* radioCity = $('input[name=myCity]').filter(':checked').value(); */
link = "http://localhost:8080/Shipping_Order/getCity_xml.jsp?qString="+radioCity;
$.ajax({
type:"GET",
url : link,
data : radioCity,
dataType : "xml",
success : function() {
/* var myCity = $('input:radio[name=myCity]:checked').value; */
/* var myCity = $('input[name=myCity]:radio:checked').val() */
for ( var i = 0; i < xmlDoc.getElementsByTagName("city").length; i++) {
$("#radioTable").append(
'<tr><td id="username"'+i+'>'
+ xmlDoc
.getElementsByTagName("username")[i].childNodes[0].nodeValue
+ '</td><td id="city"'+i+'>'
+ xmlDoc
.getElementsByTagName("city")[i].childNodes[0].nodeValue
+ '</td> <td id="contact"'+i+'>'
+ xmlDoc
.getElementsByTagName("contact")[i].childNodes[0].nodeValue
+ '</td></tr>');
}
}
});
});
});
jQuery のクリック イベントで、変数「radioCity」が現在のラジオ値を取得し、この値を ajax「url」が GET リクエストによって queryString で渡して送信します。サーバー (getCity_xml.jsp) は xml データで要求に応答し、後でセレクター名 #radioTable で追加します。
私が作成したHTMLで
getCity_xml.jsp
<%
response.setContentType("text/xml");
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/shipping_order","root","root");
Statement st = con.createStatement();
String myCity = request.getParameter("qString");
ResultSet rs = st.executeQuery("select username, contact, city from user where city ="+myCity);
while(rs.next())
{
out.println("<user>");
out.println("<username>" +rs.getString(1)+ "</username>");
out.println("<contact>" +rs.getInt(2)+ "</contact>");
out.println("<city>" +rs.getString(3)+ "</city>");
out.println("</user>");
}
rs.close();
st.close();
con.close();
}catch (SQLException ex) {out.println("Exception Occured");}
%>