簡體   English   中英

單擊按鈕后將動態選擇框附加到div

[英]Append a dynamic select box to a div after button click

我試圖在單擊按鈕后追加一個手風琴div。 很好 但是在附加的div中,我有一個選擇框,它必須是動態填充的。 得到Json結果后,我嘗試附加選項值,但是失敗了。 當我發出警報時,我會得到確切的結果。

這是我的控制器

public function getTypes(){
    $types = AnsTypes::get();
    return response()->json($types);
}

我的阿賈克斯

$.ajax({
    url: site_base_url+ '/surveys/getquestiontypes',
    type: "get",
    contentType: "application/json",dataType: "json",
    success: function(data){ // What to do if we succeed
    if(data){
    $(".group:last").after('<div class="group">' +
    '<select class="custom-select" class="answer_datatype_id">' +
      $.each(data, function(key, value){
      '<option value="'+value.answer_datatype_id+'">' + value.type_name + '</option>'
      }) +
     '</select>'+
      '</div>');
});

我的響應有效載荷是:

JSON格式
0 {…} answer_datatype_id 1 type_name文本1 {…} answer_datatype_id 2 type_name RadioButton 2 {…} answer_datatype_id 3 type_name CheckBox 3 {…} answer_datatype_id 4 type_name ListSingleSelection 4 {…} answer_datatype_id 5 type_name ListMultiSelection

響應有效負載[{“ answer_datatype_id”:1,“ type_name”:“文本”},{“ answer_datatype_id”:2,“ type_name”:“ RadioButton”},{“ answer_datatype_id”:3,“ type_name”:“ CheckBox”} ,{“ answer_datatype_id”:4,“ type_name”:“ ListSingleSelection”},{“ answer_datatype_id”:5,“ type_name”:“ ListMultiSelection”}

我的結果 在此處輸入圖片說明

看起來您的$.each不會將<option>返回到您的DOM。 您可以嘗試將<option>添加到名為options的變量中:

let options = "";
$.each(data, function(key, value){
      options +='<option value="'+value.answer_datatype_id+'">' + value.type_name + '</option>'
})

然后將您的options添加到DOM中,如下所示:

$(".group:last").after('<div class="group">' +
'<select class="custom-select" class="answer_datatype_id">' +
  options
   +
 '</select>'+
  '</div>');

這應該工作。 根據記錄,我已經嘗試過此代碼並且可以正常工作,如果您需要其他東西,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM