No hay problema amigo, para eso estamos.
Muy bien, el php como te estaba diciendo no es el problema, lo que veo "medio" complicado es el javascript; Porque por lo que veo debes hacer varias condiciones...
Si lo que necesitas saber es donde colocar y cuando disparar la función que ejecutará el ajax, puedes hacer una o varias funciones (como tu decidas) por aparte...
Por ejemplo:
Código Javascript
:
Ver originalfunction defcriterio()
{
var selected = $("#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);
// Busqueda por cliente:
var cliente = $jMaQma("#searchfor").val();
busqueda_por_cliente(cliente);
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);
break;
}
}
}
function busqueda_por_cliente(cliente)
{
var parametros = {
"bus_por" : 1,
"searchfor" : cliente
};
$.ajax({
data: parametros,
url: 'archivo_receptor.php',
type: 'post',
beforeSend: function () {
$("#capaAjax").html("<div align='center'>Cargando...</div>");
},
success: function (response) {
$("#capaAjax").html(response);
}
});
}
Ahora el php:
Código PHP:
Ver originalif(isset($_POST['bus_por'])) {
extract($POST); # con esto hacemos $_POST['var'] sea igual a: $var $bus_por = filter_var($bus_por, FILTER_SANITIZE_NUMBER_INT
); $searchfor = filter_var($searchfor, FILTER_SANITIZE_STRING
);
switch($bus_por)
{
case 1:
{
$where = "WHERE clientname LIKE '%" . $database->getEscaped($searchfor) . "%'";
break;
}
case 2:
{
echo "Hacer el query por ubicación";
break;
}
case 3:
{
$where = "WHERE rubro LIKE '%" . $database->getEscaped($searchfor) . "%'";
break;
}
}
$database->setQuery("SELECT id, date_created, clientname as `name`, address, zipcode, city, state, country, phone, fax, mobile, email, contactname, website, description, travel_time, rate as hour_rate, manager as send_to_manager, block FROM #__support_client $where ORDER BY clientname ASC LIMIT " . $limitstart . ", " . $limit);
$clients = $database->loadObjectList();
}
Algo parecido a esto :)