¡Bienvenido a PHPost!

Para participar en el foro, descargar complementos y acceder al chat, es necesario tener una cuenta activa.
Por favor, regístrate utilizando un correo electrónico válido para completar la activación.

Descarga Risus Nova 2.0   (Ver notas de la versión) Estable | Actualizado: 16/06/2026

Regístrate Descargar Risus Nova
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)