Foros del Web » Programando para Internet » Jquery »

Jquery: Autocomplete con multiples valores (casi aporte)

Estas en el tema de Jquery: Autocomplete con multiples valores (casi aporte) en el foro de Jquery en Foros del Web. Hola! recientemente he conseguido hacer funcionar jquery autocomplete pasandole vía php un array con los valores. Me funciona bien, pero me gustaría, que cuando el ...
  #1 (permalink)  
Antiguo 22/12/2010, 10:00
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Jquery: Autocomplete con multiples valores (casi aporte)

Hola!

recientemente he conseguido hacer funcionar jquery autocomplete pasandole vía php un array con los valores.

Me funciona bien, pero me gustaría, que cuando el usuario seleccione una de las sugerencias se agregue una ',' y que se active el autocomplete de nuevo...

cómo podría hacerlo? se que es en la función 'select' pero no entiendo como va, he mirado la docu de jquery ui pero el source es muy diferente al mio...

este es mi código:

Código PHP:
 <?
$a 
= new etiqueta(0'');
$b $a->autocomplete_etiquetas();
?>
<script type="text/javascript">
    function cargar_autocomplete_etiquetas(){
    $("#tags").autocomplete({
        source: [<? echo $b?>],
        multiple: true,
        multipleSeparator: ", ",
        matchContains: true
    });
}

</script>
Notese que el multiple: true y las dos lineas siguientes son pruebas... el autocomplete sigue funcionando pero no para la segunda palabra o elemento... :(

alguna idea?

muchas gracias!
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #2 (permalink)  
Antiguo 22/12/2010, 13:14
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 9 meses
Puntos: 101
Respuesta: Jquery: Autocomplete con multiples valores (casi aporte)

Creo que estas buscando un tokenizer. Que en su implementacion genera unas cajitas con una x, como en facebook. Pero tienen un html complicado.

Si lo que estas buscando es solo una simple coma, podes modificar el script para que tras el key up se divida la cadena por comas (en un array). Luego, aplicando array_pop quitás el último elemento y ese es el que envias a PHP.
  #3 (permalink)  
Antiguo 11/01/2011, 06:26
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Jquery: Autocomplete con multiples valores (casi aporte)

hola, gracias por tu respuesta!

lo que quiero exactamente es que al seleccionar una etiqueta, el autocomplete se active de nuevo para la proxima etiqueta (mismo input), nosé si me explico
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #4 (permalink)  
Antiguo 11/01/2011, 11:03
4ng3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Jquery: Autocomplete con multiples valores (casi aporte)

Mire este ejemplo usando JQuery UI http://jqueryui.com/demos/autocomplete/#multiple

Código HTML:
Ver original
  1. <meta charset="utf-8">
  2.     <script>
  3.     $(function() {
  4.         var availableTags = [
  5.             "ActionScript",
  6.             "AppleScript",
  7.             "Asp",
  8.             "BASIC",
  9.             "C",
  10.             "C++",
  11.             "Clojure",
  12.             "COBOL",
  13.             "ColdFusion",
  14.             "Erlang",
  15.             "Fortran",
  16.             "Groovy",
  17.             "Haskell",
  18.             "Java",
  19.             "JavaScript",
  20.             "Lisp",
  21.             "Perl",
  22.             "PHP",
  23.             "Python",
  24.             "Ruby",
  25.             "Scala",
  26.             "Scheme"
  27.         ];
  28.         function split( val ) {
  29.             return val.split( /,\s*/ );
  30.         }
  31.         function extractLast( term ) {
  32.             return split( term ).pop();
  33.         }
  34.  
  35.         $( "#tags" )
  36.             // don't navigate away from the field on tab when selecting an item
  37.             .bind( "keydown", function( event ) {
  38.                 if ( event.keyCode === $.ui.keyCode.TAB &&
  39.                         $( this ).data( "autocomplete" ).menu.active ) {
  40.                     event.preventDefault();
  41.                 }
  42.             })
  43.             .autocomplete({
  44.                 minLength: 0,
  45.                 source: function( request, response ) {
  46.                     // delegate back to autocomplete, but extract the last term
  47.                     response( $.ui.autocomplete.filter(
  48.                         availableTags, extractLast( request.term ) ) );
  49.                 },
  50.                 focus: function() {
  51.                     // prevent value inserted on focus
  52.                     return false;
  53.                 },
  54.                 select: function( event, ui ) {
  55.                     var terms = split( this.value );
  56.                     // remove the current input
  57.                     terms.pop();
  58.                     // add the selected item
  59.                     terms.push( ui.item.value );
  60.                     // add placeholder to get the comma-and-space at the end
  61.                     terms.push( "" );
  62.                     this.value = terms.join( ", " );
  63.                     return false;
  64.                 }
  65.             });
  66.     });
  67.     </script>
  68.  
  69.  
  70.  
  71. <div class="demo">
  72.  
  73. <div class="ui-widget">
  74.     <label for="tags">Tag programming languages: </label>
  75.     <input id="tags" size="50" />
  76. </div>
  77.  
  78. </div><!-- End demo -->
  79.  
  80.  
  81.  
  82. <div class="demo-description">
  83. <p>Usage: Type something, eg. "j" to see suggestions for tagging with programming languages. Select a value, then continue typing to add more.</p>
  84. <p>This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.</p>
  85. </div><!-- End demo-description -->
  #5 (permalink)  
Antiguo 12/01/2011, 00:00
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Jquery: Autocomplete con multiples valores (casi aporte)

entonces la idea es pasarle mi $b donde pone 'availableTags' ?
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #6 (permalink)  
Antiguo 13/01/2011, 07:23
4ng3r
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Jquery: Autocomplete con multiples valores (casi aporte)

si, lo unico que guarda availableTags es un arreglo con las palabras a autocompletar.

Etiquetas: 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 01:14.