2017-06-06 67 views
1

這一次,我在寫控制器HTML,當我選中一個複選框,我得到了控制檯的數據,但我想它的形式。追加HTML數據的jQuery

我複選框在foreach循環

<input type='checkbox' value='{$student['id']}' name='student_ids[]' id='chkbx' required> {$student['name']} 

當點擊複選框數據加載相應

其我的HTML

$str .= '<div class="form-group"> 
    <label class="control-label col-md-3"> 
    Student 
    </label> 
    <div class="col-md-4"> 
     <select id="students-clicked" class="form-control select2-multiple" multiple name="students[]"> 
      <option value=""></option>'; 
      foreach ($students as $students) { 
       $str .= "<option value='{$student->id}'>{$student->name}</option>"; 
      } 

$str .=   '</select> 
    </div> 
</div>'; 

Jquery的方法是

$('body').on('click', "#chkbx", function() { 
    var class = $('input:checkbox:checked').map(function() { 
     return this.value; 
    }).get(); 
    $.ajax({ 
      url: '/trigger/studentsData', 
      type: 'POST', 
      data: {'trigger_type': 'click' , ids: class}, 
      success: function(result) { 

      } 
     }); 
}); 

除了jQuery的一切都寫在控制這個時候我得到的HTML數據控制檯我怎麼可以追加它在我的HTML表單它根據複選框的選擇

+0

不要在控制器中寫入html。 – Kyslik

+0

@Kyslik它在我的情況下的要求是否爲什麼我使用這種方法 –

+0

你想在複選框後顯示你的HTML? – kunal

回答

1

試試這個也應該更新: -

<input type='checkbox' value='{$student['id']}' name='student_ids[]' id='chkbx' required/> {$student['name']} 
<div id="appendata"> 
//your ajax data 
</div> 
在成功功能

現在

success: function(result) { 
    $("#appendata").html(result); // this will replace when you select the checkbox 
     or 
    $("#appendata").append(result); // this will append when you select again from checkbox 
} 

希望它可以幫助

+0

其接近解決方案,但不確切它的插入HTML 5場,如果我籤5個checboxes它應該給所有數據一個下拉 –

+0

如果我點擊第二個複選框,它應該插入數據在同一字段中不需要插入新的 –

+0

然後你必須做你的HTML在控制器中使用的變化。我已根據您的問題給出答案,現在您必須查看您的代碼 – kunal

1

不要append()而使用html()覆蓋響應數據內容

success: function (result) { 
    $("#container").html(result); 
} 

另外,如果你有一個以上的複選框,不使用id,而使用class屬性遍歷它們

+2

謝謝+1幫助,如果你認爲它應該也請投票問題:) –