Как установить значения в мульти Выберите из ответа Ajax? - PullRequest
0 голосов
/ 29 июня 2018

function getNamefromDb(){
		var dataString = "metodo=getNames";
		
		$.ajax({
			type : "GET",
			url : "NameList.do",
			data : dataString,
			   dataType: "json",
			   async: false,
		        contentType: "application/json; charset=utf-8",
		        success : function(data) {
		        if (data.success == false) {
     				swal({
     					  title: data.message,
     					  html: true,
     					 
     					});
     				console.log("Fail"+data.message);
     			} else {
     				console.log("Success");
     				$.each(JSON.parse(data.message), function(key, value) {
     					$('#selectBoxId').append($("<option/>", {
     				        value: key,
     				        text: value
     				    }));
     				});
     				$("#selectBoxId").multiselect('rebuild');
     			}
		        }
     	});	
 	}
 <select id="selectBoxId" multiple="multiple"  onclick="javascript:getNamefromDb();">
Здесь я получаю ответ JSON от вызова AJAX. И тогда мне пришлось установить эти значения в поле выбора. Является ли это возможным? Но в любом случае функция getNamefromDb () не вызывается. Пожалуйста, расскажите, что в этом плохого.

Ответы [ 2 ]

0 голосов
/ 29 июня 2018
$('#selectBoxId').change(function() {
    var dataString = "{metodo:getNames,value:$(this).val()};
    $.ajax({
            type: "GET",
            url: "NameList.do",
            data: dataString,
            dataType: "json"
            async: false,
            success: function(response) {
                data = response;
                return response;
            },
            if (data.success == false) {


                swal({
                    title: data.message,
                    html: true,

                });
                console.log("Fail" + data.message);
            } else {
                console.log("Success");
                $.each(JSON.parse(data.message), function(key, value) {
                    $('#selectBoxId').append($("<option/>", {
                        value: key,
                        text: value
                    }));
                });
                $("#selectBoxId").multiselect('rebuild');
            }
        }
    });

}

0 голосов
/ 29 июня 2018

Вы можете сделать так:

  let dropdown = document.getElementById('selectBoxId');
    if (data.success){
    const data = JSON.parse(request.responseText);
    let option;
    for (let i = 0; i < data.length; i++) {
      option = document.createElement('option');
      option.text = data[i].value;
      option.value = data[i].key;
      dropdown.add(option);
    }}
...