Вход Регистрация
Файл: selemege.tk/ajax/ajaxselect.js
Строк: 64
<?php
function ajaxSelect(id) {
    var 
element document.getElementById(id)

    var 
onLoaded = function(data) {
        var 
i=0
        
for(var key in data) {
            var 
label data[key]
            
element.options[i++] = new Option(labelkey)
        }
    }
    
    var 
onLoadError = function(error) {
        var 
msg "Ошибка "+error.errcode
        
if (error.messagemsg msg ' :'+error.message
        alert
(msg)
    }
    
    var 
showLoading = function(on) {
        
element.disabled on
    
}

    var 
onSuccess = function(data) {
        if (!
data.errcode) {
            
onLoaded(data)
            
showLoading(false)        
        } else {
            
showLoading(false)
            
onLoadError(data)            
        }
    }
    
    
    var 
onAjaxError = function(xhrstatus){
        
showLoading(false)
        var 
errinfo = { errcodestatus }
        if (
xhr.status != 200) {
            
// может быть статус 200, а ошибка
            // из-за некорректного JSON
            
errinfo.message xhr.statusText
        
} else {
            
errinfo.message 'Некорректные данные с сервера'
        
}
        
onLoadError(errinfo)
    }

    
    return {
        
load: function(url) {
            
showLoading(true)

            while (
element.firstChild) {
                
element.removeChild(element.firstChild)
            }

            $.
ajax({
                
urlurl,
                
dataType"json",
                
successonSuccess,
                
erroronAjaxError,
                
cachefalse
            
})
        }
    }
}

$(
document).ready(function() {
    var 
select ajaxSelect('ajax-select');
    
document.getElementById('ajax-select-load-options').onclick =
        function() { 
select.load('/ajax/php/n.php') }
    
    
document.getElementById('ajax-select-load-error').onclick =
        function() { 
select.load('/ajax/ui/error.php') }
    
});
?>
Онлайн: 1
Реклама