Foros del Web » Programando para Internet » Jquery »

Pasar otro parametro distinto de "term"

Estas en el tema de Pasar otro parametro distinto de "term" en el foro de Jquery en Foros del Web. Hola que tal, necesito pasar un segundo parametro del archivo buscar.php al archivo search.php de de jquery autocomplete.. he intentado estas opciones y nada... 1) ...
  #1 (permalink)  
Antiguo 13/04/2014, 01:48
Avatar de totti026  
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 12 años, 10 meses
Puntos: 4
Pregunta Pasar otro parametro distinto de "term"

Hola que tal,
necesito pasar un segundo parametro del archivo buscar.php al archivo search.php
de de jquery autocomplete..

he intentado estas opciones y nada...
1)
Código Javascript:
Ver original
  1. <script>
  2.   var url = document.URL,
  3.     limite1 = url.search("id"),
  4.     limite2 = url.search("&"),
  5.     dato = url.substring(limite1, limite2).split("=")[1];
  6. $(function(){
  7.     $(".auto").autocomplete({
  8.         source: "search.php?id=" + dato,
  9.         minLength: 1        
  10.     });            
  11. });
  12. </script>

2)
Código Javascript:
Ver original
  1. $(".auto").autocomplete({
  2.         source: function( request, response ) {
  3.                 $.ajax({
  4.                     type: "GET",
  5.                     url: "search.php",
  6.                     dataType: "json",
  7.                     data: {
  8.                         term: request.term
  9.                         id: $("#id").val()
  10.                     },
  11.                     success: function( data ) {
  12.                         response(data);
  13.                     }
  14.                 });
  15.             }
  16.     });

en el search.php
trato de recibirlo con GET para ocuparlo en la consulta...
Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. ...SELECT * FROM table WHERE id=$id and nombre LIKE :term...

Que estoy haciendo mal?
  #2 (permalink)  
Antiguo 13/04/2014, 10:12
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 6 meses
Puntos: 38
Respuesta: Pasar otro parametro distinto de "term"

Creo que ahi tienes la solución!

Saludos!

http://jqueryui.com/autocomplete/#remote-jsonp

Última edición por Djoaq; 13/04/2014 a las 10:28
  #3 (permalink)  
Antiguo 13/04/2014, 17:47
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Pasar otro parametro distinto de "term"

Una alternativa de solución:

Código Javascript:
Ver original
  1. var url = document.URL,
  2.     limite1 = url.search("id"),
  3.     limite2 = url.search("&"),
  4.     dato = url.substring(limite1, limite2).split("=")[1];
  5. $(function(){
  6.     $(".auto").autocomplete({
  7.         source: "search.php?id=" + dato,
  8.         minLength: 1        
  9.     });            
  10. });

search.php
Código PHP:
Ver original
  1. $dato = mysqli_real_escape_string(strip_tags($_GET["term"]));
  2. $respuesta = array();
  3.  
  4. $query = mysqli_query($conexion, "SELECT * FROM tabla WHERE id = $id AND dato LIKE '%$dato%'");
  5. if (mysqli_num_rows($query)){
  6.     while ($row = mysqli_fetch_array($query)){
  7.         $respuesta[] = $row["dato_a_visualizar"];
  8.     }
  9.  
  10.     echo json_encode($respuesta);
  11.     mysqli_free_result($query);
  12. }

La variable term es la que usa por defecto el autocompletado de jQueryUI, por lo que solamente te quedaría adjuntar el valor de id, exactamente como ya lo tenías. Luego, en el archivo PHP que realizará la búsqueda, devuelves un array codificado en formato JSON el cual contendrá los datos que coincidan en la búsqueda.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: distinto, parametro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:42.