Вот быстрый плагин jQuery, который я написал, который делает ваш первый пример более пригодным для повторного использования:
(function ($) {
$.fn.populateWith = function(sUrl, oData, fCallback) {
if (!oData) oData = false;
if (!fCallback) fCallback = false;
$(this).load(sUrl, oData, fCallback);
};
})(jQuery);
Вы выбираете элемент <select>
(или группу элементов, в зависимости от вашего селектора jQuery) и просто загружаете заданный результат из бэкэнда, например так:
$("#firstSelect").populateWith("backend.html");
Или с обратным вызовом, который срабатывает после завершения загрузки:
$("#secondSelect").populateWith("backend.html", false, function() {
alert('Callback fired!');
});
Или с обратным вызовом и переданными данными:
$("#thirdSelect").populateWith("backend.html", {id: 1}, function() {
alert('Callback fired with data!');
});
Вы также можете вызвать его с помощью объекта данных и без обратного вызова, но вы поняли идею! По сути, этот маленький плагин позволяет вам беспокоиться о том, какие параметры вы хотите и где вы хотите их, не занимаясь деталями на стороне клиента. Ожидается, что выходные данные со стороны сервера будут представлять собой простой HTML, но его можно легко адаптировать для обработки любого предпочтительного формата.
Надеюсь, это поможет!