Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Es7a7 en 13 Diciembre 2015, 23:10 pm



Título: Auto completar en Jquery
Publicado por: Es7a7 en 13 Diciembre 2015, 23:10 pm
Hola a todos!

Estoy intentando hacer un input de texto que sea autocompletable con JQuery y Mysql,  pero no entiendo porque no me funciona. Lo que hace el codigo es basicamente cargar de mi base de datos la informacion y la guarda en un array el cual usa despues para mostrar la informacion. Os copio el codigo para ver si me podeis echar un cable. En el codigo de JQuery ya no me lee el array que he cargado en php, osea que parece como que en el cambio de un lenguaje a otro se pierde...

Código
  1. <link rel="stylesheet" type="text/css" href="/inmo/css/inmo.css" media="screen" />
  2. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  3. <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
  4.  
  5. <script>
  6. $(function(){
  7. var autocompletar = new Array();
  8. <?php //Esto es un poco de php para obtener lo que necesitamos
  9. for($p = 0;$p < count($arreglo_php); $p++){ //usamos count para saber cuantos elementos hay ?>
  10. autocompletar.push('<?php echo $arreglo_php[$p]; ?>');
  11. <?php } ?>
  12. $("#nom").autocomplete({ //Usamos el ID de la caja de texto donde lo queremos
  13. source: autocompletar //Le decimos que nuestra fuente es el arreglo
  14. });
  15. });
  16. </script>
  17.  
  18.  
  19.  
  20.  
  21. </HEAD>
  22.  
  23. <BODY>
  24.  
  25. <?php
  26.  
  27.  
  28. if( ( !empty( $_SESSION['user'] ) ) && ( $_SESSION['user'] == "admin" ) )
  29. {
  30.  
  31. echo "<DIV CLASS='wrapper'>";
  32.  
  33.  
  34. ?>
  35.  
  36. <DIV CLASS='nusuario'>
  37.  
  38.  
  39. <form action="#" name="customForm" id="customForm" method="post" enctype="multipart/form-data">
  40.  
  41. <TABLE>
  42.  
  43. <TR><TD>*NOMBRE ZONA: </TD><TD><INPUT TYPE='TEXT' id='nom' NAME='nom' SIZE='15' required>
  44.  
  45. <CENTER><TR><TD><INPUT TYPE='submit' VALUE='Acceso' NAME='acceso'></TD><TD><INPUT TYPE='reset' VALUE='En blanco'></TD>
  46.  
  47. </TR></CENTER>
  48. </TABLE>
  49. </form>
  50.  
  51. </DIV>
  52.  
  53. <?php
  54.  
  55. include $_SERVER['DOCUMENT_ROOT'] . 'inmo/mod/con_bd.php';
  56.  
  57. $sql = "select nombre from zona order by nombre";
  58. $res = $con->query($sql);
  59.  
  60. $arreglo_php = array();
  61.  
  62. if( mysqli_num_rows( $res ) == 0 )
  63. array_push($arreglo_php, "No hay datos");
  64.  
  65. else
  66. {
  67.  
  68. while( $nom_zona = $res->fetch_assoc() ){
  69. array_push( $arreglo_php, $nom_zona["nombre"] );
  70. echo $nom_zona["nombre"]."sdf<br>";
  71. }
  72.  
  73. }
  74.  
  75.  
  76. }
  77. else
  78. {
  79. echo "<DIV CLASS='error'>";
  80. echo "NO TIENES ACCESO";
  81. echo "</DIV>";
  82.  
  83. }

saludos y gracias de antemano!!


Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: Auto completar en Jquery
Publicado por: flacc en 16 Diciembre 2015, 15:10 pm
Hola Es7a7, yo tuve un problema similar usando typeahead, lo que hice fue escribir el array de java script en duro y lo solucioné. (Para salir del paso, mientras seguía buscando el problema).


Nunca cierras la etiqueta de php y pasas a escribir java script indiscriminadamente
Código
  1. <?php //Esto es un poco de php para obtener lo que necesitamos
  2. for($p = 0;$p < count($arreglo_php); $p++){ //usamos count para saber cuantos elementos hay ?>
  3. // debiera ser asi
  4. for($p = 0;$p < count($arreglo_php); $p++){ /*usamos count para saber cuantos elementos hay*/ ?>
  5. autocompletar.push('<?php echo $arreglo_php[$p]; ?>');
  6.  

Y debes corregir la identacion de la sintaxis para mejorar su lectura.

Espero de ayude.
Saludos