JavaScript - formularios, modificar select

 
Vista:

formularios, modificar select

Publicado por frikinside (1 intervención) el 10/04/2010 19:28:31
Hola! tengo un problema, en una página que estoy realizando, me gustaría realizar una búsqueda en el contenido de un select, para que se muestre en el momento, para no tener que recargar la página a cada rato usando el php.

El código que os muestro tiene ciertos fallos de usabilidad y concreción, pero nada (a mis ojos) que impida que al menos parte de el funcione:

[CODE]<script languaje="javascript">
function buscarMercenario() {
listaMercenariosTotal = document.formAsignar.mercenariosOculto;
//listaMercenariosMostrar = document.formAsignar.mercenariosLista;
listaMercenariosMostrar = document.forms['formAsignar'].elements['mercenariosLista'];
listaMecenariosAsignar = document.formAsignar.mercenariosAsignados;
campoBusqueda = document.formAsignar.busqueda;
var arrayBusqueda = new Array(listaMercenariosTotal.options.length);
j=0;
for(i=0;i<listaMercenariosTotal.options.length;i++){
if (listaMercenariosTotal.options[i].indexOf(campoBusqueda.value)!=-1) {
arrayBusqueda[j]=listaMercenariosTotal.options[i];
j++;
}
}
for(i=0;i<listaMercenariosMostrar.options.length;i++){
listaMercenariosMostrar.options[i]=null;
}
for(i=0;i<arrayBusqueda.length;i++){
listaMercenariosMostrar.options[i]=arrayBusqueda[i];
}
}
</script>

<?php
printf("<form id='formAsignar' method='post' action='admin_control.php?operacion=asignarMercenario' name='formAsignar'><input type='hidden' value='%s' Name='id'><input type='text' name='busqueda' onChange='buscarMercenario()'><br><select type='hidden' name='mercenariosOculto' size='10'>",$id);
$resultMiembros=mysql_query("select * from miembros ORDER BY poder DESC",$link);
while($row = mysql_fetch_array($resultMiembros)){
printf("<option>%s</option>",$row['nombre']);
}
printf("</select> <select name='mercenariosLista' size='10'>");
$resultMiembros=mysql_query("select * from miembros ORDER BY poder DESC",$link);
while($row = mysql_fetch_array($resultMiembros)){
printf("<option>%s</option>",$row['nombre']);
}
printf("</select> <select name='mercenariosAsignados' size='10'></select></form>");

?>
[/CODE]

Desde luego que el tamaño del array no es el apropiado, y de que el elemento que está puesto hidden es incorrecto también, no obstante al menos esta parte se debiera ejecutar:

[CODE] for(i=0;i<listaMercenariosMostrar.options.length;i++){
listaMercenariosMostrar.options[i]=null;
}[/CODE]

pero no hace eso tampoco, lo quem e indica que algo básico estoy haciendo mal, no estoy acostumbrado a usar javascript y seguramente algo este haciendo mal.

.-Salu2-.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder