Buenas noches queridos compañeros!
Estoy terminando un pequeño sistema donde lleno un DataTable mediante una consulta que levanto de un archivo Listar.php (mas abajo pego el código) el cual es llamado mediante Ajax (el código que esta debajo) mediante método POST. Hasta aquí muestra correctamente la consulta, mi problema es que necesito enviarle a Listar.php una variable para poder filtrar la consulta.
Alguno sabe como podría hacer para pasarle esa variable.
variable que necesito pasar: $filtro = "(1,2,3)";
var Listar = function(){
$("#cuadro2").slideUp("slow");
$("#cuadro1").slideDown("slow");
var table = $("#grilla").dataTable({
"ajax":{
"method":"POST",
"url":"listar.php"
},
"columns":[
{"data":"NOMBRE"},
{"data":"CLAVE"},
{"data":"PATOLOGIAS"},
{"data":"NOTAS"},
{"data":"TELEFONO"},
{"data":"ENFERMEDAD"},
{"defaultContent":"<button type='button' class='editar btn btn-primary'><i class='fa fa-pencil-square-o'></i></button> <button type='button' class='eliminar btn btn-danger' data-toggle='modal' data-target='#modalEliminar' ><i class='fa fa-trash-o'></i></button>"}
]
Listar.php
<?php
include ("conexion.php");
$query = "select p.nombre, p.clave, pe.nombre as Patologias, po.Notas,p.telefono, po.enfermedad from pacientes_odonto po
left join pacientes p on po.paciente = p.clave
left join pacientes_enfermedades pe on po.enfermedad = pe.id order by nombre asc;";
if (!$resultado){
echo "No existen registros en la base de datos.";
}else {
$arreglo["data"][] = array_map("utf8_encode", $data); }
}
?>
No lo he probado, pero me parece que una opción sería esto:
var Listar = function(){
$("#cuadro2").slideUp("slow");
$("#cuadro1").slideDown("slow");
var url = "listar.php?filtro=(1,2,3)";
var table = $("#grilla").dataTable({
"ajax":{
"method":"POST",
"url": url,
},
"columns":[
{"data":"NOMBRE"},
{"data":"CLAVE"},
{"data":"PATOLOGIAS"},
{"data":"NOTAS"},
{"data":"TELEFONO"},
{"data":"ENFERMEDAD"},
{"defaultContent":"<button type='button' class='editar btn btn-primary'><i class='fa fa-pencil-square-o'></i></button> <button type='button' class='eliminar btn btn-danger' data-toggle='modal' data-target='#modalEliminar' ><i class='fa fa-trash-o'></i></button>"}
]
Es decir, armar el url del script con el filtro y pasarselo. Hay otra más, un poquito más "elaborada":
Si el filtro proviene de una variable o parámetro que pueda ser introducido por el usuario es viable esta forma:
var strvar = 'proc=ajax&term=' + $('#b_buscar_artcod').val();
strvar += '&recurso=f_searchcod&tipo_art_id=' + tipo_art;
$.ajax({
type: 'GET',
url: 'admin/comprobante_buscar_articulo_codigo.php',
data: strvar,
Eso es un pequeño ejemplo de algo en lo que trabajo.
Puedes ver que se arma un string con los parámetros a enviar, y luego se lo pasamos a data. La url queda sin modificar. Puede ser por la via POST o GET. En mi ejemplo, se ve que se añade un parámetro más que espera el script php llamado proc. Esto nos permite saber cuando se llama vía ajax y cuando no y dependiendo de cada caso actuar en consecuencia.
Creo que es lo suficiente para que te hagas una idea.
Saludos,