PDA

Ver la Versión Completa : Pasar variable mediante Ajax a un archivo PHP


el-mono
10-08-2017, 01:31:22
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;";

$resultado = ibase_query($conexion, $query);

if (!$resultado){
echo "No existen registros en la base de datos.";
}else {

while ($data = ibase_fetch_assoc($resultado)) {
$arreglo["data"][] = array_map("utf8_encode", $data);
}
echo json_encode($arreglo);
}
ibase_free_result($resultado);
ibase_close($conexion);

?>

dec
10-08-2017, 15:34:56
Hola,

No queda muy claro (por lo menos para mí) de dónde sale el método "dataTable" que estás usando, puesto que parece que debería ser ahí donde se diese la opción de enviar la variable como quieres vía "POST". Sin embargo, una posible solución podría ser usar la URL que usas ahora y pasar la variable vía GET, en lugar de POST. Esto es, escribir algo parecido a esto:


"url": "listar.php?my_variable=my_valor"


... el "script" "Listar.php" recibiría en este caso la variable "my_variable" con el valor "my_valor".

el-mono
10-08-2017, 20:11:18
Hola Dec gracias por responde, Datatable es una Api para mostrar los datos sobre una grilla.

Al final funciono enviando la variable por Url y tomándolo desde Listar.php con $_GET

dec
10-08-2017, 21:23:00
Hola,

Hola Dec gracias por responde, Datatable es una Api para mostrar los datos sobre una grilla.

Al final funciono enviando la variable por Url y tomándolo desde Listar.php con $_GET

En mi opinión esto último es una opción perfectamente válida. En todo caso, debería ser el API en cuestión quien ofreciese la posibilidad de enviar "otras variables" en la petición "POST" que realiza para "rellenar" la "grilla". Tal vez pueda revisar la documentación en busca de algo así, si encuentra algún inconveniente en enviar la variable mediante la propia URL de la petición HTTP.