Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Php para Autocompletar

Estas en el tema de Php para Autocompletar en el foro de Frameworks JS en Foros del Web. Hola, me puede decir alguien por favor como construir el search.php para este autocompletado? @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original <! doctype html > ...
  #1 (permalink)  
Antiguo 17/10/2012, 09:21
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Php para Autocompletar

Hola, me puede decir alguien por favor como construir el search.php para este autocompletado?

Código Javascript:
Ver original
  1. <!doctype html>
  2.  
  3. <html lang="en">
  4. <head>
  5.     <meta charset="utf-8" />
  6.     <title>jQuery UI Autocomplete - Remote with caching</title>
  7.     <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" />
  8.     <script src="http://code.jquery.com/jquery-1.8.2.js"></script>
  9.     <script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
  10.     <link rel="stylesheet" href="/resources/demos/style.css" />
  11.     <style>
  12.     .ui-autocomplete-loading {
  13.         background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat;
  14.     }
  15.     </style>
  16.     <script>
  17.     $(function() {
  18.         var cache = {};
  19.         $( "#birds" ).autocomplete({
  20.             minLength: 2,
  21.             source: function( request, response ) {
  22.                 var term = request.term;
  23.                 if ( term in cache ) {
  24.                     response( cache[ term ] );
  25.                     return;
  26.                 }
  27.  
  28.                 $.getJSON( "search.php", request, function( data, status, xhr ) {
  29.                     cache[ term ] = data;
  30.                     response( data );
  31.                 });
  32.             }
  33.         });
  34.     });
  35.     </script>
  36. </head>
  37. <body>
  38.  
  39. <div class="ui-widget">
  40.     <label for="birds">Birds: </label>
  41.     <input id="birds" />
  42. </div>
  43.  
  44.  
  45. </body>
  46. </html>

Gracias.
  #2 (permalink)  
Antiguo 17/10/2012, 13:16
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Php para Autocompletar

me parece que en la documentación de jQueryUI te ofrecen la información necesaria ¿ya lo consultaste?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 17/10/2012, 14:38
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Php para Autocompletar

Maycol estoy utilizando este pero me da error de:

Código Javascript:
Ver original
  1. Fatal error: Class 'mysqli' not found

Código PHP:
Ver original
  1. <?php
  2.    
  3.     // PHP5 Implementation - uses MySQLi.
  4.     // mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
  5.     $db = new mysqli('localhost, 'root' ,'root', 'xxxx');
  6.     if ($mysqli->connect_error) {
  7.    die('Error de Conexión (' . $mysqli->connect_errno . ') '
  8.            . $mysqli->connect_error);
  9. }
  10.  
  11. /*
  12. * Use esto en lugar de $connect_error si necesita asegurarse
  13. * de la compatibilidad con versiones de PHP anteriores a 5.2.9 y 5.3.0.
  14. */
  15. if (mysqli_connect_error()) {
  16.    die('Error de Conexión (' . mysqli_connect_errno() . ') '
  17.            . mysqli_connect_error());
  18. }
  19.  
  20. echo 'Éxito... ' . $mysqli->host_info . "\n";
  21.    
  22.     if(!$db) {
  23.         // Show error if we cannot connect.
  24.         echo 'ERROR: Could not connect to the database.';
  25.     } else {
  26.         // Is there a posted query string?
  27.         if(isset($_POST['queryString'])) {
  28.             $queryString = $db->real_escape_string($_POST['queryString']);
  29.            
  30.             // Is the string length greater than 0?
  31.            
  32.             if(strlen($queryString) >0) {
  33.                 // Run the query: We use LIKE '$queryString%'
  34.                 // The percentage sign is a wild-card, in my example of countries it works like this...
  35.                 // $queryString = 'Uni';
  36.                 // Returned data = 'United States, United Kindom';
  37.                
  38.                 // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
  39.                 // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
  40.                
  41.                 $query = $db->query("SELECT apellidos FROM usuarios WHERE apellidos LIKE '$queryString%' LIMIT 10");
  42.                 if($query) {
  43.                     // While there are results loop through them - fetching an Object (i like PHP5 btw!).
  44.                     while ($result = $query ->fetch_object()) {
  45.                         // Format the results, im using <li> for the list, you can change it.
  46.                         // The onClick function fills the textbox with the result.
  47.                        
  48.                         // YOU MUST CHANGE: $result->value to $result->your_colum
  49.                         echo '<li onClick="fill(\''.$result->value.'\');">'.$result->value.'</li>';
  50.                     }
  51.                 } else {
  52.                     echo 'ERROR: There was a problem with the query.';
  53.                 }
  54.             } else {
  55.                 // Dont do anything.
  56.             } // There is a queryString.
  57.         } else {
  58.             echo 'There should be no direct access to this script!';
  59.         }
  60.     }
  61. ?>

Un saludo
  #4 (permalink)  
Antiguo 17/10/2012, 15:17
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Php para Autocompletar

Tienes activada la funcion mysqli en la configuración de tu php, estas usando namespaces ademas es necesario que copies un código de la web tal como esta, no seria que hagas el código de acuerdo a lo que lees???

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 17/10/2012, 15:37
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Php para Autocompletar

La configuracion que me estas diciendo no se si la tengo lo unico que te puedo decir es que tengo contratado el hosting y php en www.interdominios.es y son ellos los que me dan el servicio para las bases de datos y myadmin.
Un saludo
  #6 (permalink)  
Antiguo 18/10/2012, 07:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Php para Autocompletar

bueno, podrías intentar adaptar el código para usar PDO (que supongo sí debe tener el hosting) ya que la sintaxis es similar, si no con la librería estándar de php mysql, que es muy sencilla de aprender además , solo necesitas un conjunto de funciones.

mysql_connect
mysql_select_db
mysql_query
mysql_fetch_assoc ó mysql_fetch_row etc.

en un tutorial básico PHP+mysql lo consigues
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #7 (permalink)  
Antiguo 18/10/2012, 07:50
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Php para Autocompletar

Cita:
Iniciado por maycolalvarez Ver Mensaje
bueno, podrías intentar adaptar el código para usar PDO (que supongo sí debe tener el hosting) ya que la sintaxis es similar, si no con la librería estándar de php mysql, que es muy sencilla de aprender además , solo necesitas un conjunto de funciones.

mysql_connect
mysql_select_db
mysql_query
mysql_fetch_assoc ó mysql_fetch_row etc.

en un tutorial básico PHP+mysql lo consigues
maycolalvarez


No recomiendo que ya la gente use la librería misma de mysql porque esta en un futuro va a ser deprecada y por lo tanto seria que use tal como mencionas PDO o MySQLi

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #8 (permalink)  
Antiguo 18/10/2012, 08:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Php para Autocompletar

Cita:
Iniciado por Dradi7 Ver Mensaje
maycolalvarez


No recomiendo que ya la gente use la librería misma de mysql porque esta en un futuro va a ser deprecada y por lo tanto seria que use tal como mencionas PDO o MySQLi

Saludos
exacto y estoy 100% de acuerdo contigo, pero lamentablemente todavía quedan hostings por ahí que ni PDO implementan, por lo que algunos tengan que recurir a lo viejo, yo desde hace años que uso sólo PDO o Doctrine
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 18/10/2012, 09:49
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Php para Autocompletar

Cita:
Iniciado por maycolalvarez Ver Mensaje
exacto y estoy 100% de acuerdo contigo, pero lamentablemente todavía quedan hostings por ahí que ni PDO implementan, por lo que algunos tengan que recurir a lo viejo, yo desde hace años que uso sólo PDO o Doctrine
Eso si tienes razón y eso que hay algunos hosting que trabajan con PHP 4
y es una cosa de locos .

Y lo de Doctrine muy buena ORM que me parece la mas completa

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #10 (permalink)  
Antiguo 18/10/2012, 14:25
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Php para Autocompletar

Dejo esto por si le sirve a alguien http://php.net/manual/es/mysqli.installation.php
Muchas gracias a los dos estudiaré que puedo hacer y os cuento.....
Un saludo

Última edición por satjaen; 18/10/2012 a las 15:55
  #11 (permalink)  
Antiguo 19/10/2012, 01:32
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Php para Autocompletar

Ya no me da error en mi servidor local pero ahora el problema es que no salen los resultados, solo sale 'Éxito... '.
Porque puede ser?.
  #12 (permalink)  
Antiguo 19/10/2012, 09:27
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 16 años, 5 meses
Puntos: 220
Respuesta: Php para Autocompletar

Seria bueno que pongas el código (usa por favor HIGHLIGHT) porque no veo arriba en donde te sale éxito

Saludos
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #13 (permalink)  
Antiguo 19/10/2012, 10:15
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Php para Autocompletar

Ok,

Autocompletar.php

Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Ajax Auto Suggest</title>
  7.  
  8. <script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
  9. <script type="text/javascript">
  10.     function lookup(inputString) {
  11.         if(inputString.length == 0) {
  12.             // Hide the suggestion box.
  13.             $('#suggestions').hide();
  14.         } else {
  15.             $.post("rpc.php", {queryString: ""+inputString+""}, function(data){
  16.                 if(data.length >0) {
  17.                     $('#suggestions').show();
  18.                     $('#autoSuggestionsList').html(data);
  19.                 }
  20.             });
  21.         }
  22.     } // lookup
  23.    
  24.     function fill(thisValue) {
  25.         $('#inputString').val(thisValue);
  26.         setTimeout("$('#suggestions').hide();", 200);
  27.     }
  28. </script>
  29.  
  30. <style type="text/css">
  31.     body {
  32.         font-family: Helvetica;
  33.         font-size: 11px;
  34.         color: #000;
  35.     }
  36.    
  37.     h3 {
  38.         margin: 0px;
  39.         padding: 0px;  
  40.     }
  41.  
  42.     .suggestionsBox {
  43.         position: relative;
  44.         left: 30px;
  45.         margin: 10px 0px 0px 0px;
  46.         width: 200px;
  47.         background-color: #212427;
  48.         -moz-border-radius: 7px;
  49.         -webkit-border-radius: 7px;
  50.         border: 2px solid #000;
  51.         color: #fff;
  52.     }
  53.    
  54.     .suggestionList {
  55.         margin: 0px;
  56.         padding: 0px;
  57.     }
  58.    
  59.     .suggestionList li {
  60.        
  61.         margin: 0px 0px 3px 0px;
  62.         padding: 3px;
  63.         cursor: pointer;
  64.     }
  65.    
  66.     .suggestionList li:hover {
  67.         background-color: #659CD8;
  68.     }
  69. </style>
  70.  
  71. </head>
  72.  
  73. <body>
  74.  
  75.  
  76.     <div>
  77.         <form>
  78.             <div>
  79.                 Selecciona el Nº de teléfono:
  80.                 <br />
  81.                 <input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
  82.             </div>
  83.            
  84.             <div class="suggestionsBox" id="suggestions" style="display: none;">
  85.                 <img src="upArrow.png" style="position: relative; top: -12px; left: 30px;" alt="upArrow" />
  86.                 <div class="suggestionList" id="autoSuggestionsList">
  87.                     &nbsp;
  88.                 </div>
  89.             </div>
  90.         </form>
  91.     </div>
  92.  
  93. </body>
  94. </html>


rpc.php


Código PHP:
<?php
    
    
// PHP5 Implementation - uses MySQLi.
    // mysqli('localhost', 'yourUsername', 'yourPassword', 'yourDatabase');
    
$db = new mysqli('localhost''root' ,'root''xxxxx');
    if (
$mysqli->connect_error) {
    die(
'Error de Conexión (' $mysqli->connect_errno ') '
            
$mysqli->connect_error);
}

/*
 * Use esto en lugar de $connect_error si necesita asegurarse
 * de la compatibilidad con versiones de PHP anteriores a 5.2.9 y 5.3.0.
 */
if (mysqli_connect_error()) {
    die(
'Error de Conexión (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Éxito... ' $mysqli->host_info "\n";
    
    if(!
$db) {
        
// Show error if we cannot connect.
        
echo 'ERROR: Could not connect to the database.';
    } else {
        
// Is there a posted query string?
        
if(isset($_POST['queryString'])) {
            
$queryString $db->real_escape_string($_POST['queryString']);
            
            
// Is the string length greater than 0?
            
            
if(strlen($queryString) >0) {
                
// Run the query: We use LIKE '$queryString%'
                // The percentage sign is a wild-card, in my example of countries it works like this...
                // $queryString = 'Uni';
                // Returned data = 'United States, United Kindom';
                
                // YOU NEED TO ALTER THE QUERY TO MATCH YOUR DATABASE.
                // eg: SELECT yourColumnName FROM yourTable WHERE yourColumnName LIKE '$queryString%' LIMIT 10
                
                
$query $db->query("SELECT telefono FROM usuarios WHERE telefono LIKE '$queryString%' LIMIT 10");
                if(
$query) {
                    
// While there are results loop through them - fetching an Object (i like PHP5 btw!).
                    
while ($result $query ->fetch_object()) {
                        
// Format the results, im using <li> for the list, you can change it.
                        // The onClick function fills the textbox with the result.
                        
                        // YOU MUST CHANGE: $result->value to $result->your_colum
                         
echo '<li onClick="fill(\''.$result->value.'\');">'.$result->value.'</li>';
                     }
                } else {
                    echo 
'ERROR: There was a problem with the query.';
                }
            } else {
                
// Dont do anything.
            
// There is a queryString.
        
} else {
            echo 
'There should be no direct access to this script!';
        }
    }
?>
Saludos.

Etiquetas: html, input, js, php, autocompletado
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 14:11.