Ver Mensaje Individual
  #17 (permalink)  
Antiguo 29/07/2013, 16:22
Avatar de AJDM
AJDM
 
Fecha de Ingreso: febrero-2013
Ubicación: Occidente
Mensajes: 69
Antigüedad: 12 años
Puntos: 1
Pregunta Respuesta: Consulta parametrizada.

Saludos de nuevo;

A continuación te voy a colocar el paso a paso tal y como me lo he ingeniado a ver si estoy en lo correcto.

1.- Activo los select dependiendo del criterio de busqueda y de una vez defino la consulta que voy a realizar en la variable llamada defcta para luego utilizar el valor de esa variable en otra funcion.

Código HTML:
function defcriterio()
	{
		var selected = $jMaQma("#criterio option:selected");		
		var msg = "";
		var defcta = "";
		if(selected.val() != 0)
		{
			var variable = selected.val();
			switch (variable)
			{ 
				case "1":
					$jMaQma("#country").attr("disabled",true);
					$jMaQma("#state").attr("disabled",true);
					$jMaQma("#city").attr("disabled",true);
					$jMaQma("#rubro").attr("disabled",true);
					$jMaQma("#searchfor").attr("disabled",false);
					defcta = "1";
					break;
				case "2":
					$jMaQma("#country").attr("disabled",false);
					$jMaQma("#state").attr("disabled",true);
					$jMaQma("#city").attr("disabled",true);
					$jMaQma("#rubro").attr("disabled",true);
					$jMaQma("#searchfor").attr("disabled",true);
					cargar_paises();
					defcta = "2";
					break;
				case "3":
					$jMaQma("#country").attr("disabled",true);
					$jMaQma("#state").attr("disabled",true);
					$jMaQma("#city").attr("disabled",true);
					$jMaQma("#rubro").attr("disabled",false);
					$jMaQma("#searchfor").attr("disabled",true);
					cargar_rubro();
					defcta = "3";
					break;				
			}
		}
	else
		{
		msg = "El valor seleccionado no es valido";
		}
		$("#msg").html(msg);
	}
2.- Habiendo seleccionado el criterio y la definicion de la busqueda con la variable defcta, entonces preparo los parámetros que voy a utilizar para cada tipo de busqueda:
Código HTML:
function defbusqueda()
{
	switch (defcta)
		{ 
		case "1":
			var cliente   =   $jMaQma("#searchfor").val();
			var parametros = {
			"bus_por" : 1,
			"searchfor" : cliente
			}; 
			alert(parametros);
			break;
		case "2":
			var selpais = $jMaQma("#country option:selected");
			var seledo = $jMaQma("#state option:selected");
			var selciu = $jMaQma("#city option:selected");
			if((selpais.val() != 0) && (seledo.val() = 0) && (selciu.val() = 0))
				var pais = $jMaQma("#country").val();
				var parametros = {
				"bus_por" : 2,
				"searchfor" : pais
				};
			
			if((selpais.val() != 0) && (seledo.val() != 0) && (selciu.val() = 0))
				var estado = $jMaQma("#state").val();
				var parametros = {
				"bus_por" : 3,
				"searchfor" : estado
				};
			
			if((selpais.val() != 0) && (seledo.val() != 0) && (selciu.val() != 0))
				var ciudad = $jMaQma("#city").val();
				var parametros = {
				"bus_por" : 4,
				"searchfor" : ciudad
				};
				alert(parametros);
				break;
		case "3":
				var xrubro = $jMaQma("#rubro").val();
				var parametros = {
				"bus_por" : 5,
				"searchfor" : xrubro
				};
				alert(parametros);
				break;				
		}
}
Fijate que para el caso en el que la busqueda será por ubicación pregunto que valor tiene cada lista de selección y dependiendo de ello defino los parámetros que luego voy a utilizar en el AJAX.

3.- Ya habiendo identificado el criterio y el tipo de busqueda a utilizar entonces procedo a armar el ajax y a llamar el PHP para que ejecute el query que corresponda a la selección.

Código HTML:
function busqueda()
{
        $jMaQma.ajax(
		{
			data:  parametros,  
			url:   'archivo_receptor.php',
			type:  'post',  
			beforeSend: function ()
				{
				$("#capaAjax").html("<div align='center'>Cargando...</div>");
				},
			success:  function (response)
				{
				$("#capaAjax").html(response);
				}
		});

}
Que te parece?

Como está quedando?
__________________
La humildad y la disposición a compartir es lo que nos hace cada vez mejores.