bssanchez93

JQUERY Autocomplete, PHP y MySQL

Sep 16th, 2013
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.93 KB | None | 0 0
  1. <!-- //-- En el HTML ASI..1! --// -->
  2.  
  3. <!-- Librerias de JQUERY necesarias y su respectivo css de jquery-ui -->
  4. <link type="text/css" href="css/redmond/jquery-ui-1.10.3.custom.min.css" rel="stylesheet">
  5.  
  6. <script src="js/jquery.js" type="text/javascript"></script>
  7. <script src="js/jquery-ui-1.10.0.custom.min.js" type="text/javascript"></script>
  8.  
  9. <div class="ui-widget">
  10.     <input type="hidden" name="id_usuario" id="id_usuario" value="">
  11.     <input type="text" id="txtBuscarUsuario" name="txtBuscar" class="input-xxlarge search-query">
  12. </div>
  13.  
  14. <!-- //-- En el PHP asi --// -->
  15. <?php
  16. class clsFunciones
  17. {
  18.     public function obtenerUsuarios($nombre, $bandera=true) {
  19.         try {
  20.             if($bandera){
  21.                 if(is_numeric($nombre))
  22.                 {
  23.                     $where = 'd.cedula like :nombre';
  24.                     $nombre = $nombre . '%';
  25.                 }
  26.                 else
  27.                 {
  28.                     $where = 'd.nombre like :nombre';
  29.                     $nombre = '%' . $nombre . '%';
  30.                 }
  31.             }
  32.             else{
  33.                 $where = 'd.id = :nombre';
  34.             }
  35.            
  36.             $sth = $this->dbh->prepare('select u.id, d.nombre, d.apellido from usuario u, datos_personales d where u.id_datos_personales = d.id and '.$where.' limit 0,10;');
  37.             $sth->execute(array(':nombre' => $nombre));
  38.            
  39.             $result = $sth->fetchAll();
  40.             return $result;
  41.         }
  42.         catch (PDOException $e) {
  43.             print "[ObtenerUsuarios] Error!: " . $e->getMessage();
  44.             die();
  45.         }
  46.     }
  47. }
  48.  
  49. header('Content-type:text/javascript;charset=UTF-8');
  50. $acc = isset($_GET['accion'])?$_GET['accion']:null;
  51. if($acc != null)
  52. {
  53.     $obj = new clsFunciones();
  54.     switch ($acc) {
  55.         case 'usuarios':
  56.             echo json_encode($obj->obtenerUsuarios($_POST['search']));
  57.             break;
  58.     }
  59. }
  60. // yo uso PDO así que usted adaptelo a su conexión y/o librería de persistencia de datos :3
  61.  
  62. ?>
  63.  
  64. <!-- //-- Y Este el script propio lo puede incrustar ya sea en el html dentro de <script></script> o en un custom.js y llamarlo --// -->
  65.  
  66.     $("#txtBuscarUsuario").autocomplete({
  67.         source : function( request , response ){
  68.             var url = "clsFunciones.php?accion=usuarios";
  69.             $.post(url, { 'search' : request.term }, response, 'json');
  70.         },
  71.         select: function( event, ui ) {
  72.             $("#txtBuscarUsuario").val(ui.item.nombre + " " + ui.item.apellido);
  73.             $('#id_usuario').val(ui.item.id);
  74.  
  75.              return false;
  76.         }
  77.     }).data("ui-autocomplete")._renderItem = function(ul, item) {
  78.             return $("<li>").append( "<a>(" + item.id + ") " + item.nombre + " " + item.apellido + "</a>" ).appendTo( ul );
  79.     };
  80.  
  81. y listo deberia funcionar, recordar clsFunciones.php se cambia por la ruta al script que contiene la funcion en php mencionada arriba....
Advertisement
Add Comment
Please, Sign In to add comment