我将来自servlet响应中的数据库的值作为id和name;我将它存储在servlet中的Map
key-value
中。
我现在想创建一个JSP
代码,生成一个复选框并显示动态值列表。
Servlet代码
String sql = "SELECT customerid , c_name from customer";
ResultSet rs = s.executeQuery(sql);
Map<String, String> options = new LinkedHashMap<String, String>();
while (rs.next()) {
options.put(rs.getString("customerid"), rs.getString("c_name");
}
String json = new Gson().toJson(options);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
JSP代码 -
$(document).ready(function () {
$('.btn-checkbox').click(function () {
$.get('dataservlet', function (responseJson) {
var $input = $('#id1');
var $type = 'checkbox';
$.each(responseJson, function (key, value) {
$('$type').val(key).text(value).appendTo($input);
});
});
});
//JQuery is not generating the right checkboxes, even when the response is in, need help in forming the correct JQuery.
HTML代码 -
div id="id1"></div>
例如 -
我有一个记录 -
customerid c_name
5000 name1
我需要一个复选框来生成:
<input type ="checkbox" id'5000"/>name1
//所以这里key
是 id 而value
是 name1
我需要一个带有值的复选框,如下图所示 -
更新
答案 0 :(得分:1)
你这样做完全错了。使用以下行。的 Demo Fiddle 强>
var append = $('<input type="'+$type+'">'+value+'</input>').attr('id',key).val(value);
$($input).append('<br/>').append(append);
$type
不能用作字符串 - $('$type')
.val()
。$(document).ready()
结束});
。.change()
而不是.click()
输入。所以你最后的JS:
$(document).ready(function () {
$('.btn-checkbox').change(function () {
$.get('dataservlet', function (responseJson) {
var $input = $('#id1');
var $type = 'checkbox';
$.each(responseJson, function (key, value) {
var append = $('<input type="'+$type+'">'+value+'</input>').attr('id',key).val(value);
$($input).append('<br/>').append(append);
});
});
});
});