Ver Mensaje Individual
  #18 (permalink)  
Antiguo 06/08/2013, 16:28
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 amigos,

He adelantado bastante con este proceso y ya tengo definida la función que determina el criterio de busqueda, esta es la función se las dejo por si les sirve de algo.

Código:
function defcriterio()
	{
		var selected = $jMaQma("#criterio option:selected");		
		var msg = "";
		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);
					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();
					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();
					break;				
			}
		}
	else
		{
		msg = "El valor seleccionado no es valido";
		}
		$("#msg").html(msg);
	}
Ahora bien una vez que el usuario ya ha seleccionado el criterio tengo una función que hace la busqueda tomando en cuenta ese criterio, esta es la función:

Código:
function defbusqueda()
	{
		var selected = $jMaQma("#criterio option:selected");
		var selpais = $jMaQma("#country option:selected");
		var seledo = $jMaQma("#state option:selected");
		var selciu = $jMaQma("#city option:selected");
		var xrubro = $jMaQma("#rubro option:selected");
		if(selected.val() != 0)
		{
			if(selected.val() == "1")
			var cliente   =   $jMaQma("#searchfor").val();
			var parametros = {
			"bus_por" : 1,
			"searchfor" : cliente
			}; 
			$.ajax({
                data:  parametros,
                url:   'busca_reg.php',
                type:  'post',
                beforeSend: function () {
                $jMaQma("#capaAjax").html("<div align='center'>Cargando...</div>");
                    },
                success:  function (response) {
                $jMaQma("#capaAjax").html(response);
                    }
            });
Este es el contenido del php que estoy llamando con el AJAX.
Código PHP:
<?php
if(isset($_POST['bus_por']))
{
    
extract($POST);
    
$bus_por filter_var($bus_porFILTER_SANITIZE_NUMBER_INT);
    
$searchfor filter_var($searchforFILTER_SANITIZE_STRING);

include_once(
"clases/class.mysql.php");

switch(
$bus_por)
    {
    case 
1:
        {
        
$where "WHERE clientname LIKE '%" $database->getEscaped($searchfor) . "%'";
        break;
        }
    case 
2:
        {
        
$where "WHERE country LIKE '%" $database->getEscaped($searchfor) . "%'";
        break;
        }
    case 
3:
        {
        echo 
"Hacer el query por pais - estado";
        break;
        }
    case 
4:
        {
        echo 
"Hacer el query por pais - estado - ciudad";
        break;
        }        
    case 
5:
        {
        
$where "WHERE rubro LIKE '%" $database->getEscaped($searchfor) . "%'";
        break;
        }
    }
    
$database->setQuery("SELECT  * FROM mytable $where ORDER BY client ASC LIMIT " $limitstart ", " $limit);
    
$clients $database->loadObjectList();    
}    
?>
Ahora bien el problema es que al ejecutarse la función el sistema me muestra el siguiente error:
Warning: extract() expects parameter 1 to be array, null given in /home/busca_reg.php on line 4

Fatal error: Call to a member function setQuery() on a non-object in /home/busca_reg.php on line 38

Alguien me podrá dar alguna luz acerca de como resolver el tema?

Desde ya mil gracias....
__________________
La humildad y la disposición a compartir es lo que nos hace cada vez mejores.