Foros del Web » Programando para Internet » Javascript »

Problema con autocompletar un input

Estas en el tema de Problema con autocompletar un input en el foro de Javascript en Foros del Web. En realidad se muy poco de javascript por no decir que nada, tengo un problemilla necesito autocompletar un input que si funciona, pero en base ...
  #1 (permalink)  
Antiguo 27/06/2013, 14:02
 
Fecha de Ingreso: junio-2013
Mensajes: 14
Antigüedad: 10 años, 10 meses
Puntos: 0
Pregunta Problema con autocompletar un input

En realidad se muy poco de javascript por no decir que nada, tengo un problemilla necesito autocompletar un input que si funciona, pero en base a la eleccion en este se llena un segundo input. el codigo que tengo es el siguiente:

en mi index:
Código HTML:
Ver original
  1. <form name="consumi" method="get" action="usuario.php">
  2.                                                                         <input type="hidden" value=Mi_Comida name=Mi_Comida>
  3.                                                                         <input type="hidden" id="botcon" value=Cargar_Alimento name=Cargar_Alimento>
  4.                                                                            
  5.                                                                         <table id=tablaform><tr><td><label id=op3>Tipo de alimento:</label></td>
  6.                                                                         <td>
  7.                                                                         <select name="tipo" id=op>
  8.                                                                         <option selected>--Selecciona--</option>
  9.                                                                         <option>Desayuno</option>
  10.                                                                         <option>Almuerzo</option>
  11.                                                                         <option>Comida</option>
  12.                                                                         <option>Cena</option>
  13.                                                                         </select>
  14.                                                                         </td><tr>
  15.                                                                         <tr><td>
  16.                                                                         <label id=op3>Consumi:</label></td><td> <input name="tag" type="text" id="tag" size="20"/><br></td></tr>
  17.                                                                         <tr><td><label id=op3>Hora de consumo: </label></td><td> <input name="hr" type="text" id="op" size="20"/><br></td></tr>
  18.                                                                         <tr><td><label id=op3>Cantidad: </label></td><td> <input name="cantidad" type="text" id="op" size="20"/><br></td></tr>
  19.                                                                         <tr><td><label id=op3>Medida: </label></td><td> <input name="medida" type="text" id="op" size="20"/><br></td></tr>
  20.                                                                         <tr><td>
  21.                                                                         <br><br>
  22.                                                                         <input type="submit" name="No comi" value="No comi" id="botcon"/></td><td>
  23.                                                                         <br><br>
  24.                                                                         <input type="submit" name="Agregar" value="Agregar" id="botcon"/></td></tr></table>';

el script es:
Código Javascript:
Ver original
  1. <script>
  2.      $(document).ready(function(){
  3.       $("#tag").autocomplete("autocomplete.php", {
  4.             selectFirst: true
  5.       });
  6.      });
  7. </script>

y autocomplete contiene:

Código PHP:
Ver original
  1. <?php
  2.  $q=$_GET['q'];
  3.  $my_data=mysql_real_escape_string($q);
  4.  $mysqli=mysqli_connect('localhost','root','123','salud') or die("Database Error");
  5.  $sql="SELECT nombre FROM alimento WHERE nombre LIKE '$my_data%' ORDER BY nombre";
  6.  $result = mysqli_query($mysqli,$sql) or die(mysqli_error());
  7.  
  8.  if($result) {
  9.   while($row=mysqli_fetch_array($result))
  10.   {
  11.    echo $row['nombre']."\n";
  12.   }
  13.  }
  14.  
  15.      echo "No existe, da clic <br>en agregar a la lista";
  16.  
  17.  
  18. ?>
Necesito ayuda urgentemente
  #2 (permalink)  
Antiguo 28/06/2013, 02:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con autocompletar un input

Tienes un problema de concepto, perimero no puedes autocompletar algo que depende de una acción del cliente antes de que el cliente haga lo que tiene que hacer (lo intentas hacer onDocument ready) y segundo cuando autocompletes debes pasar el dato de lo que ha hecho el cliente.

Luego la función que llama a "autocomplete.php" debe ejecutarse cuando el cliente haya hecho su elección en el imput anterior, (onBlur de ese imput seria el evento). Luego cuando llames a autocomplete.php debes pasarle el valor que he elegido el cliente, fijate que autocomplete.php lee un parametro 'q' por get.

'autocomplete.php?q='+this.value
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 28/06/2013, 08:08
 
Fecha de Ingreso: junio-2013
Mensajes: 14
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Problema con autocompletar un input

Creo que si comprendo, bueno el primer input llamado tag si me da la opcion de autocompletar, pero quiero que el input medida, se carge con la medida almacenada en la bd en base al input tag como seria para hacer eso, el autocompletar si me funciona....gracias
  #4 (permalink)  
Antiguo 01/07/2013, 02:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema con autocompletar un input

Código HTML:
Ver original
  1. <input name="tag" type="text" id="tag" size="20" onblur="funcionLoad('zona','busacamedia.php?tag='+this.value)" />
  2. .....
  3. <td id="zona"><label id=op3>Medida: </label></td><td> <input name="medida" type="text" id="op" size="20"/><br></td>

busacamedia.php

Código PHP:
Ver original
  1. <?php
  2. //inicias session
  3. //recuperas o creas la conexion a la bbdd
  4.  
  5. $tag="";
  6. $media="";
  7. if(is_set($_GET['tag'])) $tag=$_GET['tag'];
  8.  
  9. if($tag!=""){
  10. ///Construyes la query con el valor de $tag
  11. ///Ejecutas la query
  12. ///recuperas el valor y lo asignas a $media
  13. }
  14. ?>
  15.  
  16. <label id=op3>Medida: </label></td><td> <input name="medida" type="text" id="op" size="20" value="<?php echo $madia;?>"/><br>


el evento onblur debe lanzar una funcion que refresque asincronamente la zona donde tienes el imput que quieres que reciba el valor. El esquema del fichero que recupera el valor seria el que he puesto.... simplemente substituye el contenido de la celda por el imput con valor si lo ha podido recuperar.

Busca load de jquery para crear la función, los dos parametros deben ser la zona a refrescar y el fichero origen con los valores necesarios pera que se pueda ejecutar. Esa función podria servirte para otros luegares donde debas hacer algo similar. Onblur quizas tambien se puede llamar dedes jquery, es que no lo uso....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: funcion, input, php, select
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 04:43.