Foros del Web » Programando para Internet » Jquery »

jQuery Autocomplete color de fondo segun valor en tabla mysql

Estas en el tema de jQuery Autocomplete color de fondo segun valor en tabla mysql en el foro de Jquery en Foros del Web. Quisiera cambiar el color de fondo de una opción que se despliega según un valor que tengo almacenado en una tabla en mysql. Como hago ...
  #1 (permalink)  
Antiguo 08/10/2014, 23:30
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
jQuery Autocomplete color de fondo segun valor en tabla mysql

Quisiera cambiar el color de fondo de una opción que se despliega según un valor que tengo almacenado en una tabla en mysql. Como hago esto?
  #2 (permalink)  
Antiguo 09/10/2014, 14:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

En el callback en donde desgloses la información recibida (en donde crees la lista desplegable), evalúa cada dato y según sea su valor, asignas un color de fondo al <li>.

Por ejemplo, en este ejemplo, personalizo las opciones de la lista desplegable, añadiéndole una foto y otros datos. En tu caso, solo haría falta que le asignes un color de fondo según el criterio que vayas a tomar en cuenta para ello.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 12/10/2014, 16:36
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

hola si te paso el ejercicio que estoy haciendo me podrias ayudar? porque hay algunas cosas que las hago "para que funcionen" pero creo que se deberian hacer de otra manera. tenes algun email o algo?
  #4 (permalink)  
Antiguo 12/10/2014, 16:37
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

Cita:
Iniciado por Alexis88 Ver Mensaje
En el callback en donde desgloses la información recibida (en donde crees la lista desplegable), evalúa cada dato y según sea su valor, asignas un color de fondo al <li>.

Por ejemplo, en este ejemplo, personalizo las opciones de la lista desplegable, añadiéndole una foto y otros datos. En tu caso, solo haría falta que le asignes un color de fondo según el criterio que vayas a tomar en cuenta para ello.

Saludos
hola si te paso el ejercicio que estoy haciendo me podrias ayudar? porque hay algunas cosas que las hago "para que funcionen" pero creo que se deberian hacer de otra manera. tenes algun email o algo?
  #5 (permalink)  
Antiguo 12/10/2014, 17:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

Coloca acá la parte crítica del código. No hay que ser mezquinos y compartamos lo que sabemos así como la manera en que solucionamos los problemas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 13/10/2014, 21:25
Avatar de Fernarey1810  
Fecha de Ingreso: noviembre-2008
Mensajes: 214
Antigüedad: 15 años, 5 meses
Puntos: 1
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

Esto es lo que quiero hacer, pero no lei nada de la documentacion de jquery autocomplete esta en ingles.
1º - Quiero que se vaya poniendo en negrita y con otro color los carcteres que voy introduciendo en el input. COMO ACA
http://salman-w.blogspot.com.ar/2013...-examples.html
FIJATE EL EJEMPLO 4. Highlight Matched Text

2º. - Quiero que el php solo me devuelva el indice de la mercaderia, mas el titulo de la mercaderia que estoy buscando. Osea al seleccionar la mercaderia coloque en otro input el ID y en el input que busco el titulo. Por como lo hago yo me coloca todo en uno solo ID separado con un "-" y luego titulo. Tengo que usar explode luego para separarlos.
FIJATE EL EJEMPLO 1. Using Label-Value Pairs (EL DE ABAJO Modified Behavior) PORQUE HAY 2
3º.- Quiero que la lista se ponga de color rojo el fondo acorde a un valor de la tabla mysql, por ej si la cantidad es menor o igual a 1 se ponga rojo el fondo.

Esto que hice funciona pero no lo estoy haciendo como quiero. La base de datos ponele que tiene los siguientes campos:
id - integer
titulo - varchar


Código HTML:
Ver original
  1. <input type="text" value=""  id="mercaderia1" name="mercaderia[]" class="merc" >

Este es el codigo PHP que me devuelve los datos, usa la funcion procesar_formulario:

Código PHP:
Ver original
  1. <?php
  2. //defino una clase que voy a utilizar para generar los elementos sugeridos en autocompletar
  3. class ElementoAutocompletar {
  4.    var $value;
  5.    var $label;
  6.    
  7.    function __construct($label, $value){
  8.       $this->label = $label;
  9.       $this->value = $value;
  10.    }
  11. }
  12.  
  13. //recibo el dato que deseo buscar sugerencias
  14. $datoBuscar = $_GET["term"];
  15.  
  16. //conecto con una base de datos
  17. $conexion = mysql_connect("localhost", "root", "");
  18. mysql_select_db("base_ropa");
  19.  
  20. //busco un valor aproximado al dato escrito
  21. $ssql = "SELECT id, titulo, precio, cantidad FROM mercaderia WHERE titulo LIKE '%" . $datoBuscar . "%' LIMIT 10";
  22. $rs = mysql_query($ssql);
  23.  
  24. //creo el array de los elementos sugeridos
  25. $arrayElementos = array();
  26.  
  27. //bucle para meter todas las sugerencias de autocompletar en el array
  28. while ($fila = mysql_fetch_array($rs)){
  29.     $temp = $fila["titulo"].":".str_replace('.',',',$fila[precio]).":".$fila[cantidad];
  30.    
  31.     $t = explode(":", $temp);
  32.         ----->>>>> ESTO ES LO QUE YO QUIERO QUE ME HAGA EL _renderItem PONER ROJO EL COLOR DE FONDO
  33.     if ($t[2] <= 1) {
  34.         $a = '<font style="background-color: #FFDDDD;">'.$t[0].'</font>';
  35.         $temp1 = str_replace(strtolower($datoBuscar), '<b class="ot">'.$datoBuscar.'</b>', '<b>'.strtolower($a).' - &lt;</b>'); //$t[0]    
  36.         $temp = str_replace('&lt;', '<span class="ot2"> $'.$t[1].'</span>', $temp1);
  37.     }else {
  38.         $temp1 = str_replace(strtolower($datoBuscar), '<b class="ot">'.$datoBuscar.'</b>', '<b>'.strtolower($t[0]).' - &lt;</b>');     
  39.         $temp = str_replace('&lt;', '<span class="ot2"> $'.$t[1].'</span>', $temp1);
  40.     }          
  41.            
  42.     array_push($arrayElementos, new ElementoAutocompletar($temp, $fila["id"].'-'.$fila["titulo"].' - $'.$fila["precio"])); //$fila["id"]
  43. }
  44.  
  45. print_r(json_encode($arrayElementos));
  46. ?>

Código Javascript:
Ver original
  1. window.onload = function() {
  2.     //jQuery.noConflict();
  3.     run();
  4.    
  5.     function run() {
  6.         $(".merc").autocomplete({
  7.          source: "autocompletemer.php",        
  8.          minLength: 2,
  9.          html: 'html',
  10.          focus: function(event, ui) {
  11.                 // prevent autocomplete from updating the textbox
  12.                 //event.preventDefault();
  13.                 // manually update the textbox
  14.                 //$(this).val(ui.item.label);
  15.             },
  16.          select: function(event, ui) {
  17.                 // prevent autocomplete from updating the textbox
  18.                 //event.preventDefault();
  19.                 // manually update the textbox and hidden field
  20.                 //$(this).val(ui.item.label);
  21.                 //$("#autocomplete2-value").val(ui.item.value);
  22.             }              
  23.          });
  24.      
  25.      }
  26.      [COLOR="Red"]ESTOY USANDO ESTE COMPLEMENTO[/COLOR]
  27.      /*
  28.      * jQuery UI Autocomplete HTML Extension
  29.      *
  30.      * Copyright 2010, Scott González (http://scottgonzalez.com)
  31.      * Dual licensed under the MIT or GPL Version 2 licenses.
  32.      *
  33.      * http://github.com/scottgonzalez/jquery-ui-extensions
  34.      */
  35.     (function( $ ) {
  36.     var proto = $.ui.autocomplete.prototype,
  37.         initSource = proto._initSource;
  38.    
  39.     function filter( array, term ) {
  40.         var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
  41.         return $.grep( array, function(value) {
  42.             return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
  43.         });
  44.     }
  45.    
  46.     $.extend( proto, {
  47.         _initSource: function() {
  48.             if ( this.options.html && $.isArray(this.options.source) ) {
  49.                 this.source = function( request, response ) {
  50.                     response( filter( this.options.source, request.term ) );
  51.                 };
  52.             } else {
  53.                 initSource.call( this );
  54.             }
  55.         },
  56.    
  57.         _renderItem: function( ul, item) {
  58.             return $( "<li></li>" )
  59.                 .data( "item.autocomplete", item )
  60.                 .append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
  61.                 .appendTo( ul );
  62.         }
  63.     });
  64.     })( jQuery );

Última edición por Fernarey1810; 13/10/2014 a las 22:00
  #7 (permalink)  
Antiguo 14/10/2014, 01:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: jQuery Autocomplete color de fondo segun valor en tabla mysql

Para lo primero, creo que te conviene utilizar el plugin del ejemplo, sería más rápido, aunque también hay forma de hacerlo desde cero. Para lo segundo, podrías hacer como hago en el ejemplo que te mostré, en donde cada dato está almacenado en índices de un array y a este array lo incluyo en otro que es el que finalmente devuelvo. Luego, como necesitas dos datos, pues ponlos en dos índices distintos, así como hice con el nombre y apellido del ejemplo.

Para lo tercero, creo que sería mejor si en cada array devuelves, además de los dos datos que mencionas, un tercero que indique el color a mostrar, luego, al recibir la respuesta en el código JS, asignas un color o una clase CSS al elemento para así darle el color que le corresponda. Esas serían simples condiciones.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: color, javascript, mysql, tabla, valor
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 17:01.