0 votos
por (20 puntos) en jQuery
Hola:

Estoy teniendo un problema con  una función a ejectuar si ajax tiene exito. posteo el codigo, por favor si alguien me puede decir porque no funciona el switch/case de la funcion success estare muy agradecido. Noten que agregue una función alert(data) previa a la comparación del data con cada case del switch, esta función me demuestra que data vuelve con uno de los tres valores esperados (comun, administrador, moderador).

Codigo:

<pre lang='javascript'>$(document).ready(function(){
   window.onload = function(){
   $("#menuitem2").css("display","none");
   $("#menuitem3").css("display","none");
   $("#menuitem4").css("display","none");
   $("#menuitem5").css("display","none");
   $("#menuitem6").css("display","none");
   $("#menuitem7").css("display","none");
   $("#menuitem8").css("display","none");
   $("#menuitem9").css("display","none");
   $("#menuitem10").css("display","none");
        $.ajax({
        type: "GET",
        url: "indexol.php",
        error: function(){ alert("Hubo un error en el script de Login!"); },
        success: function(data){
            if(data == "iniciado"){
            $("#loginwrapper").css("display","none");
            $("#cerrarSesion").css("display","block");
            $.ajax({
               type: "GET",
               url: "usermenu.php",
               error: function(){ alert("Hubo un error en el script de Login (usermenu.php)!");},
               success: function(data){
                    alert(data);
                    switch(data) {
                        case "comun":
                            $("#menuitem2").css("display","block");
                            $("#menuitem3").css("display","block");
                            $("#menuitem4").css("display","block");
                            $("#menuitem5").css("display","block");
                            break;
                        case "administrador":
                            $("#menuitem6").css("display","block");
                            $("#menuitem7").css("display","block");
                            $("#menuitem8").css("display","block");
                            $("#menuitem9").css("display","block");
                            $("#menuitem10").css("display","block");
                            break;
                        case "moderador":
                            $("#menuitem2").css("display","block");
                            $("#menuitem3").css("display","block");
                            $("#menuitem4").css("display","block");
                            $("#menuitem5").css("display","block");
                            break;
                    }
               }
              });
            }
        }
    });
   }
});
Fin de codigo.

Gracias.


1 Respuesta

0 votos
por (560 puntos)
Hola que tal, mira para empezar me gustaria saber que objeto es que te regresa el metodo o servicio que consumes, ya que por ejemplo puedes devolver un jSON ejemplo.

var ejemplo={

    dato="Dato para case"

}

y al traer en un metodo de operacion exitosa, en el switch no deberias poner presisamente la variable data, ya que ese seria tu objeto, entonces por tanto para que el switch te reconosca el resultado, es necesario que especifiques la propiedad del objeto, especifica el objeto que vas a validar, por ejemplo:

switch(data.dato){}

Nota que le estamos indicando la propiedad dentro del objeto mas no el objeto.

Espero te haya servido de algo saludos

Preguntas relacionadas

0 votos
1 respuesta
preguntado por kinon (100 puntos) Ene 28, 2016 en jQuery
0 votos
0 respuestas
0 votos
3 respuestas
0 votos
0 respuestas
0 votos
1 respuesta
preguntado por sanref (20 puntos) Ene 28, 2016 en Javascript
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...