2014-06-09 60 views
0

我將servlet響應中的數據庫值作爲id和name;我將它存儲在一個servlet中的Mapkey-value中。從servlet響應中生成動態複選框值

我想現在創建一個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 

//所以在這裏keyIDvaluename1

我需要一個複選框,在它的值如下圖像 -

enter image description here

UPDATE

enter image description here

+0

$( '#vehicleChkBox')。變化(函數(){ cb = $(this); cb.val(cb.prop('checked')); }); –

+0

感謝Pawan,你能否提供整個JQuery示例,最好是這樣理解它? – AKIWEB

回答

1

你這樣做是完全錯誤的。使用以下幾行。 Demo Fiddle

var append = $('<input type="'+$type+'">'+value+'</input>').attr('id',key).val(value); 

$($input).append('<br/>').append(append); 
  • $type不能被用作字符串 - $('$type')
  • 關鍵是你的ID - 因此使用.val()你不能使用它。
  • 爲什麼你將它附加到輸入,你應該在輸入後插入新的複選框 - .after()
  • 而你忘記結束$(document).ready()});
  • 使用.change()而不是.click() incase of inputs。

因此,最終的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); 
      }); 
     }); 
    }); 
}); 
+0

謝謝shaunakde,我已經更新了我的HTML代碼方面的問題,基本上我有一個ID爲'div'的ID爲'id1',我需要填充所有帶有值的複選框,並且我已經嘗試過您的代碼,而我獲取所有複選框但沒有值? :(有什麼我缺少的? – AKIWEB

+0

請檢查我所得到的更新後的圖像,你提到的變化.. – AKIWEB

+0

請檢查更新的代碼 –

相關問題