ну если на чистом js, то примерно так:
document.getElementById('#selectId').change = function(){
var elem = (typeof this.selectedIndex === "undefined" ? window.event.srcElement : this);
var value = elem.value || elem.options[elem.selectedIndex].value;
var request;
if (window.XMLHttpRequest) {
request = new window.XMLHttpRequest();
} else {
request = new ActiveXObject("MSXML2.XMLHTTP");
}
request.open('GET', '/path/to/backend', true);
request.onreadystatechange = function() {
if (this.readyState === 4 && this.status === 200) {
var jsonString = this.responseText; //{"value":"title", "value2":"title2"}
var data = JSON.parse(jsonString);
var optionsString = '';
for (var key in data) {
optionsString+= '<option value="' + key + '">' + data[key] + '</option>';
}
document.getElementById('#targetSelectId').innerHTML = optionsString;
}
}
request.send('selectValue=' + value);
}