cuando en una caja de texto escribo esto "h" ,hago una busqueda por todos los items cuyo nombre empieza por esa letra, atravez del AJAX a mi BD de MySQL y me devuele un array, ese array lo devuelvo a Javascript gracias a JSON, y el resultado lo muestro en un select:
Código HTML:
<select id="items" > <option>htp barniz</option> <option>hidroxido</option> <option>htp pinturas color verde</option> <option>htp pinturas color rojo</option> <option>hexano</option> <option>he sellador</option> <option>htp pinturas color azul</option> </select>
Código HTML:
<select id="items" > <option>hexano</option> <option>he sellador</option> </select>
Código HTML:
<select id="items" > <option>hexano</option> </select>
simplemente elimine a los que no coincidian
Código PHP:
//select donde estan los elementos
var sele=document.getElementById('lista_items');
//caja de texto donde escribo
var x=document.getElementById('arti').value;
var tv=x.toUpperCase();
var item_name;
var item_name2;
///para leer todas los option y saber si deben ser eliminados
for (var pss=sele.length-1;pss>=0;pss--)
{
item_name=sele.options[pss].text.substr(0,tv.length);
//tambien lo convierto a mayusculas
item_name=item_name.toUpperCase();
///como ya tengo a los productos, solo busco
a los que no empiezan
//por la letra especifica
if (item_name!=tv)
{
sele.remove(pss);
}
}
Esta alli todo bien, ya que no es necesario hacer denuevo una consulta SQL y no sobrecargo el servidor, pero en vez de seguir escribiendo voy borrando, quedando asi: "he"
el select de nuevo me queda asi
Código HTML:
<select id="items" > <option>hexano</option> <option>he sellador</option> </select>
Código HTML:
<select id="items" > <option>htp barniz</option> <option>hidroxido</option> <option>htp pinturas color verde</option> <option>htp pinturas color rojo</option> <option>hexano</option> <option>he sellador</option> <option>htp pinturas color azul</option> </select>
Código PHP:
//Primero borro a todos los elementos
var sel=document.getElementById('lista_items');
for (var ps=sel.length-1;ps>=0;ps--)
{
sel.remove(ps);
}
//ahora voy creando los options con los items que necesito
// "aglobal" es una variable global que tiene a todos los items
encontrados en la primera busqueda.
for (var q2=aglobal.length-1;q2>=0;q2--)
{
var item_nomb=aglobal[q2].item_nomb.substr(0,tv.length);
item_nomb=item_nomb.toUpperCase();
///para volver a poner solo los que coincidan con las letras
if (item_nomb==tv)
{
var op2=document.createElement('<option>');
var nom2=document.createTextNode(item_nomb);
sel.appendChild(op2);
op2.appendChild(nom2);
/concateno el codigo, nombre y precio porque luego los voy a separar
///para utilizarlos
op2.setAttribute('value',aglobal[q2].item_nomb+'@'+aglobal[q2].item_pvt1+'@'+aglobal[q2].item_codi);
}
}
solo voy logrando esto:
Código PHP:
items_eli.push(sele.options[pss].value);
Pero me falta un poco para hallar toda la logica
pueden ayudarme?
Es que necesito que la busqueda sea los mas rapido posible ya que en ese select tendre muchos elementos