Hola me encontre en este foro un buen JS que te busca cadenas en un select list es este:
Código HTML:
<html>
<head>
<script>
function sel(c){
c = c.toLowerCase();
formu=document.forms['formulario'];
caracteres=c.length;
if(caracteres!=0){
for (x=0;x<formu['lista'].options.length;x++){
if(formu['lista'].options[x].value.slice(0,caracteres)==c){
formu['lista'].selectedIndex=x;
formu['lista'].style.visibility="visible";
break;
}else{
formu['lista'].style.visibility="hidden";
}
}
}else{
formu['lista'].style.visibility="hidden";
}
}
</script></head>
<body>
<form action="index.php" name="formulario" >
<input type="text" name="buscar" onKeyUp="sel(this.value)" style="width:200px;"><br>
<select name="lista" size="5" style="width:200px;visibility:hidden">
{LISTA}
</select>
</form>
</body>
</html>
Y funciona muy bien si los datos del select list se ingresan manualmente, sin embargo estoy intentando usar PHP para obtener los datos de MySQL y ahí nada de nada.
Este es el codigo PHP
Código PHP:
function directorio()
{
$db=mysql_connect("localhost","root",""); //devuelve el valor de la base de datos para crear la conexion
mysql_select_db("base_de_datos",$db);
$html = new NokTemplate('./');
$html->cargar('tHeader', "busca_java.htm");
$html->cargar('tBody', "");
$html->cargarVirtual('Opciones','<option value ={VALOR}>{OPTION}</option>');
$query_dierctorio = "SELECT * FROM directorio";
$result_dierctorio = mysql_query($query_dierctorio, $db);
$row_dierctorio = '';
while($row_dierctorio = mysql_fetch_array($result_dierctorio))
{
$html->asignar('VALOR', $row_dierctorio['nombre']);
$html->asignar('OPTION', $row_dierctorio['nombre']);
$html->expandir('LISTA', '+Opciones');
}
$html->expandir('CONTENIDO', 'tBody');
$html->expandir('FINAL', 'tHeader');
$html->imprimir('FINAL');
}
Y la explico Brebemente:
Las etiquetas entre {} pertenecen a una clase que se llama Noktemplates
http://www.jpw.com.ar/?lugar=descargas , a traves de esta clase incrustas templetes html en PHP, lo que intento hacer es cargar virtualmente el select list con los datos obtenidos de MySQL hasta aqui todo bien, pero el JS no funciona con esta informacion cargada por medio de PHP, pienso sin conocer bien lo que digo, que se debe a que en realidad el select list es virtual no?
Porfavor alguien digame si lo que intento hacer es posible, porque estoy atorado en esto.
Nota, este post ya lo puse en la seccion de PHP y nadie lo ha contestad.