這裏我使用json + ajax + struts2
來創建相關下拉菜單。首先下降有一些價值基於這些價值第二下拉正在加載。在第二個下拉菜單中,每次點擊第一個下拉菜單的數據(這裏我使用的是onchange
事件)後,我得到了未定義的響應值。我從struts2獲取ajax響應作爲對象。我想將這些對象轉換爲第二個下拉列表的字符串(它應該包含id和name)。我不知道如何將對象轉換爲字符串。我嘗試了一些在stackoverflow和谷歌搜索的鏈接,但它不適合我。這裏是我的代碼:將Ajax響應設置爲使用json下拉
Struts2的:
second_drop_downList=retrieveSecond();
ServletActionContext.getResponse().setContentType("text/html");
PrintWriter out = ServletActionContext.getResponse().getWriter();
out.print(second_drop_downList);
out.flush();
我在這裏得到正確的大小多少數據存在於數據庫中。我通過上面的代碼將這些數據傳遞給ajax響應。
這裏是我的Ajax代碼:
$(".country").change(function() {
var id = $(this).val();
var dataString = 'id=' + id;
$.ajax({
type : "POST",
url : "sendDropdown.action",
data : dataString,
success : function(response) {
alert(response);
var myJSONText = JSON.stringify(response);
//alert(myJSONText);
var obj = JSON.parse(myJSONText);
alert(obj);
var html = '<option value="">select Section</option>';
for (var i = 0; i < obj.length; i++) {
html += '<option value="'+obj[i].id+'">' + obj[i].dep_name
+ '</option>';
}
html += '</option>';
$('.city').html(html);
}
});
});
我在這裏得到響應爲十六進制格式(警報)。但在下拉我收到未定義。
在struts2動作中寫入響應,這是一個非常糟糕的方式。 –