¡Bienvenido! ¿Aún no estás registrado?, deberás registrarte antes de poder usar el Chat, Comentar y Descargar en el Foro. Usa un email válido para la activación.
Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

TUTORIAL Reduce la función login_ajax()
#1

5
Mejor respuesta del mensaje Reduce la función login_ajax()Bueno después de tanto tiempo de haberlo hecho quiero compartírselo, es un gran cambio para el js y así también reducir un poco más de código.

1 - En acciones.js buscamos la función mencionada en el título
 
function login_ajax(form, connect){
    var el = new Array(), params = '';
    if (form == 'registro-logueo' || form == 'logueo-form') {
        el['nick'] = $('.reg-login .login-panel #nickname');
        el['pass'] = $('.reg-login .login-panel #password');
        el['error'] = $('.reg-login .login-panel #login_error');
        el['cargando'] = $('.reg-login .login-panel #login_cargando');
        el['cuerpo'] = $('.reg-login .login-panel .login_cuerpo');
        el['button'] = $('.reg-login .login-panel input[type="submit"]');
    } else {
        el['nick'] = $('#login_box #nickname');
        el['pass'] = $('#login_box #password');
        el['error'] = $('#login_box #login_error');
        el['cargando'] = $('#login_box #login_cargando');
        el['cuerpo'] = $('#login_box .login_cuerpo');
        el['button'] = $('#login_box input[type="submit"]');
    }
    if (typeof connect != 'undefined') {
        params = 'connect=facebook';
    } else {
        if (empty($(el['nick']).val())) {
            $(el['nick']).focus();
            return;
        }
        if (empty($(el['pass']).val())) {
            $(el['pass']).focus();
            return;
        }
        $(el['error']).css('display', 'none');
        $(el['cargando']).css('display', 'block');
        $(el['button']).attr('disabled', 'disabled').addClass('disabled');
        var remember = ($('#rem').is(':checked')) ? 'true' : 'false';
        params = 'nick='+encodeURIComponent($(el['nick']).val())+'&pass='+encodeURIComponent($(el['pass']).val())+'&rem='+remember;
        if (form == 'logueo-form') {
            params += '&facebook=1';
        }
    }
    $('#loading').fadeIn(250);    
    $.ajax({
        type: 'post', url: global_data.url + '/login-user.php', cache: false, data: params,
        success: function (h) {
            switch(h.charAt(0)){
                case '0':
                    $(el['error']).html(h.substring(3)).show();
                    $(el['nick']).focus();
                    $(el['button']).removeAttr('disabled').removeClass('disabled');
                    break;
                case '1':
                    if (form != 'registro-logueo') {
                        close_login_box();
                    }
                    if (h.substring(3)=='Home') {
                        location.href='/';
                    } else if (h.substr(3) == 'Cuenta') {
                        location.href = '/cuenta/';
                    } else {
                        location.reload();
                    }
                    $('#loading').fadeOut(350);
                    break;
                case '2':
                    $(el['cuerpo']).css('text-align', 'center').css('line-height', '150%').html(h.substring(3));
                    break;
                case '3':
                    open_login_box();
                    mydialog.class_aux = 'registro';
                    mydialog.mask_close = false;
                    mydialog.close_button = true;
                    mydialog.show(true);
                    mydialog.title('Ingresar');
                    mydialog.body('<br /><br />', 305);
                    mydialog.buttons(false);
                    mydialog.procesando_inicio('Cargando...', 'Registro');
                    mydialog.center();
                    $.ajax({
                        type: 'POST',
                        url: global_data.url + '/login-form.php',
                        data: '',
                        success: function(h){
                            mydialog.procesando_fin();
                            switch(h.charAt(0)){
                                case '0':
                                    mydialog.alert('Error', h.substring(3));
                                    break;
                                case '1':
                                    mydialog.body(h.substring(3), 305);
                            }
                            mydialog.center();
                        }
                    });

            }
        },
        error: function() {
            $(el['error']).html(lang['error procesar']).show();
        },
        complete: function(){
            $(el['cargando']).css('display', 'none');
        }
    });
}

y la reemplazaremos por
 
login_ajax = () => {
    if( empty($("#nickname").val()) ) {
        $("#nickname").focus();return
    }
    if( empty($("#password").val()) ) {
        $("#password").focus();return
    }
    // Datos a enviar
    let dato = [
        'nick=' + encodeURIComponent($("#nickname").val()),
        'pass=' + encodeURIComponent($("#password").val()),
        'rem=' + $("#rem").is(':checked')
    ].join("&");
    // Imagen de cargando
    $(".login_cuerpo").append('<div id="login_cargando"><img src="'+global_data.img+'images/large-loading.gif" width="32" height="32" alt="Iniciando sesion"></div>');
    // Envio los datos
    $.post(global_data.url + "/login-user.php", dato, response => {
        switch (response.charAt(0)) {
            case '0':
                $("#login_error").html(response.substring(3)).show()
                $("#login_cargando").remove()
            break;
            // Iniciamos sesion
            case '1':
                setTimeout(() => (response.charAt(0) != '1' ? location.href = response.substring(3) : location.reload()), 1500)
            break;
        }
    })
    .fail(() => {
        $("#login_error").html('Error al procesar la petici&oacute;n')
        $("#login_cargando").remove()
    })
}

Listo, así de fácil...Puede ser que en el futuro lo mejore más...
Responder
#2

0
quedo super, muchas gracias
Responder


Compartir en:

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)