Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Entrando en todos los IF

Estas en el tema de Entrando en todos los IF en el foro de Javascript en Foros del Web. Tengo la siguiente funciona la cual ejecuto una vez que se oprime un boton. Código: function defbusqueda() { var selected = $jMaQma('#criterio option:selected').val(); var selpais ...
  #1 (permalink)  
Antiguo 13/08/2013, 19:45
Avatar de AJDM  
Fecha de Ingreso: febrero-2013
Ubicación: Occidente
Mensajes: 69
Antigüedad: 11 años, 2 meses
Puntos: 1
Pregunta Entrando en todos los IF

Tengo la siguiente funciona la cual ejecuto una vez que se oprime un boton.

Código:
function defbusqueda()
{
    var selected = $jMaQma('#criterio option:selected').val();
    var selpais = $jMaQma('#country option:selected').val();
    var seledo = $jMaQma('#state option:selected').val();
    var selciu = $jMaQma('#city option:selected').val();
    var xrubro = $jMaQma('#rubro option:selected').val();
    if(selected != 0)
    {
        if(selected==1)
        var cliente = $jMaQma("#searchfor").val();
        var parametros = {
        "bus_por" : 1,
        "searchfor" : cliente
        };
       
        if((selected==2) && (selpais!=0) && (seledo==0) && (selciu==0))
        var pais = $jMaQma("#country").val();
        var parametros = {
        "bus_por" : 2,
        "country" : pais
        };
           
        if((selected==2) && (selpais!=0) && (seledo!=0) && (selciu==0))
        var pais = $jMaQma("#country").val();
        var estado = $jMaQma("#state").val();
        var parametros = {
        "bus_por" : 3,
        "country" : pais,
        "state" : estado
        };
       
        if((selected==2) && (selpais!=0) && (seledo!=0) && (selciu!=0))
        var pais = $jMaQma("#country").val();
        var estado = $jMaQma("#state").val();
        var ciudad = $jMaQma("#city").val();
        var parametros = {
        "bus_por" : 4,
        "country" : pais,
        "state" : estado,
        "city" : ciudad
        };
                   
        if(selected==3)
        var rubro = $jMaQma('#rubro option:selected').val();
        var parametros = {
        "bus_por" : 5,
        "rubro" : rubro
        };
    }
       
        $jMaQma.ajax(
        {
        data:  parametros,
        url:   'media/com_maqmahelpdesk/templates/default/clients/busca_reg.php',
        type:  'post',
        beforeSend: function ()
        {
        $jMaQma("#capaAjax").html("<div align='center' class='table table-bordered table-striped'>Cargando datos; un momento por favor...</div>");
        },
        success:  function (response)
        {
        $jMaQma("#capaAjax").html(response);
        }
        }
        );
}
Por alguna razon que desconozco o no logro ver, la funcion esta ejecutando todos los if, es decir como si todas las condiciones se dieran aun cuando no es asi y pues al final el valor de los parametros para el ajax siempre es bus_por 5 cuando no deberia ser asi.

Alguien puede ver donde esta el error?
__________________
La humildad y la disposición a compartir es lo que nos hace cada vez mejores.
  #2 (permalink)  
Antiguo 13/08/2013, 22:27
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: Entrando en todos los IF

...en primer lugar, no estas empleando apropiadamente las llaves de los bloques de los condicionales....sino agregas los corchetes en cada condicional podes obtener resultados insesperados en la ejecuciòn del codigo. Javascript interpreta que la primer linea después del condicional esta incluido en este, y ejecuta las siguientes lineas como si estuvieran fuera del condicional..

Código Javascript:
Ver original
  1. var q = 123;
  2.  
  3. if(q === 1234)
  4. console.log(1);
  5. console.log(2);
  6. console.log(3);
  7. console.log(4);
  8.  
  9. // Javascript ejecutará las ultimas 3 lineas del codigo sin importar si la condicion se cumple o no, generando resultados inesperados


...luego "$jMaQma", no deberia ser "$" o "jQuery" ????...de donde sacastes "$jMaQma" ???


...y finalmente has probado con la consola que valores obtienes antes de usar los condicionales?
  #3 (permalink)  
Antiguo 14/08/2013, 06:49
Avatar de AJDM  
Fecha de Ingreso: febrero-2013
Ubicación: Occidente
Mensajes: 69
Antigüedad: 11 años, 2 meses
Puntos: 1
Pregunta Respuesta: Entrando en todos los IF

Cita:
Iniciado por ipraetoriux Ver Mensaje
...en primer lugar, no estas empleando apropiadamente las llaves de los bloques de los condicionales....sino agregas los corchetes en cada condicional podes obtener resultados insesperados en la ejecuciòn del codigo. Javascript interpreta que la primer linea después del condicional esta incluido en este, y ejecuta las siguientes lineas como si estuvieran fuera del condicional..

Código Javascript:
Ver original
  1. var q = 123;
  2.  
  3. if(q === 1234)
  4. console.log(1);
  5. console.log(2);
  6. console.log(3);
  7. console.log(4);
  8.  
  9. // Javascript ejecutará las ultimas 3 lineas del codigo sin importar si la condicion se cumple o no, generando resultados inesperados


...luego "$jMaQma", no deberia ser "$" o "jQuery" ????...de donde sacastes "$jMaQma" ???


...y finalmente has probado con la consola que valores obtienes antes de usar los condicionales?
Buen dia ipraetoriux;

Gracias mil por tu respuesta, voy a responder punto por punto.

Punto 1. Podrías ilutras con mi función de que me estas hablando?

Punto 2. $jMaQma es porque estoy trabajando sobre joomla.

Punto 3. Si he probado en la consola con el FireBug y cuando llamo a la función esta se ejecuta linea a linea sin importar si se da la condicion o nó.

De nuevo mil gracias por tomarte el tiempo de responder a mi plnateamiento, muchisimo te sabría agradecer si podrías ilustrarme con la misma función donde está el error

Código Javascript:
Ver original
  1. if(selected==1)
  2.         var cliente = $jMaQma("#searchfor").val();
  3.         var parametros = {
  4.         "bus_por" : 1,
  5.         "searchfor" : cliente
  6.         };

De nuevo mil gracias......

Estaré pendiente de tu respuesta.
__________________
La humildad y la disposición a compartir es lo que nos hace cada vez mejores.

Etiquetas: ajax, funcion, html, php, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:07.