Foros del Web » Programando para Internet » Javascript »

filtrar select con texto

Estas en el tema de filtrar select con texto en el foro de Javascript en Foros del Web. buenas, me gustaría hacer lo mismo que se hace en : [URL="http://http://www.forosdelweb.com/f13/faqs-javascript-105325/index2.html#post268150"]http://http://www.forosdelweb.com/f13/faqs-javascript-105325/index2.html#post268150[/URL] pero con el select de esta forma, a ver si me pueden echar ...
  #1 (permalink)  
Antiguo 16/05/2012, 15:09
 
Fecha de Ingreso: mayo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Sonrisa filtrar select con texto

buenas, me gustaría hacer lo mismo que se hace en :
[URL="http://http://www.forosdelweb.com/f13/faqs-javascript-105325/index2.html#post268150"]http://http://www.forosdelweb.com/f13/faqs-javascript-105325/index2.html#post268150[/URL]

pero con el select de esta forma, a ver si me pueden echar una mano.
De php controlo algo,pero de js muy muy poco
Mi código es el siguiente.
El select que deseo filtrar:

<form name="frmIngles" action='acciones.php' method="post">
<select name="selectTermIngles" id="selectTermIngles" onchange="verseleccion1()" size="30" style="width:267px;" onFocus="this.style.width='267px'" onChange="this.style.width='267px'">
<?php
//cojo el array de la bd
$contTerm=controladorTerminos::getInstance();
$terminosArray=$contTerm->getTerminoIngles();
$count = count($terminosArray);
for ($i = 0; $i < $count; $i++) {
echo "<option value='".$terminosArray[$i]->getEntrada()."'>".$terminosArray[$i]->getEntrada()."</option>";

}
?>
</select>
</form>

y aqui donde quiero poner el texto:
<form id="formulario" name="formulario">
<div class="input-container"><input name="busqueda" id="busqueda" onKeyUp="buscar();"/></div>
</form>

¿Cómo sería mi función "buscar()" en js?
Tengo hecho esto de tanto mirar en foros:

<script>
var lista=new Array();
function buscar() {
limpiarLista();
// Obtengo el valor del texto
texto = document.formulario.busqueda.value;
// Creo la expresión regular
expr = new RegExp("^" + texto,"i");
//// Recorro la lista. Si la expresión regular es OK
y = 0;
for (x=0;x<lista.length;x++) {
if (expr.test(lista[x])) {
document.frmIngles.selectTermIngles[y] = new Option(lista[x]);
y++; } } }
function limpiarLista() {
for (x=document.frmIngles.selectTermIngles.length;x>=0 ;x--)
document.frmIngles.selectTermIngles[x] = null; }
</script>

y es en var lista=new Array(), donde tengo que meter mi array $terminosArray[$i]->getEntrada()
que es el que aparece en el select,pero hay me quedo pillado.
Muchas gracias de antemano y saludos.
  #2 (permalink)  
Antiguo 21/05/2012, 10:16
 
Fecha de Ingreso: mayo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: filtrar select con texto

alguna idea?
  #3 (permalink)  
Antiguo 21/05/2012, 12:12
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: filtrar select con texto

pasá el html generado completo, no el php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 21/05/2012, 13:03
 
Fecha de Ingreso: mayo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: filtrar select con texto

<?php
include_once("../proyecto.MODELO/controladorDiccionarios.php");
include_once("../proyecto.MODELO/controladorTerminos.php");
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">


<link rel="stylesheet" type="text/css" href="../css/interfaz.css">
<script type="text/javascript" src="js/menu.js"></script>
<title>Documento sin t&iacute;tulo</title>
<script language="javascript" src="js/jquery-1.2.6.min.js"></script>

<script type="text/javascript">
<!--
function seleccion(opc)
{
//escondemos todos los contenidos
document.getElementById("terminosIngles").style.di splay="none";
document.getElementById("terminosEspanol").style.d isplay="none";

switch(opc)
{
case 1:
//mostramos elcontenido de la primera opcion
document.getElementById("terminosIngles").style.di splay="block";
break;
case 2:
//mostramos elcontenido de la segunda opcion
document.getElementById("terminosEspanol").style.d isplay="block";
break;

}
}
//-->
</script>

<script>
var lista=new Array();
function buscar() {
limpiarLista();
// Obtengo el valor del texto
texto = document.formulario.busqueda.value;
// Creo la expresión regular
expr = new RegExp("^" + texto,"i");
//// Recorro la lista. Si la expresión regular es OK
y = 0;
for (x=0;x<lista.length;x++) {
if (expr.test(lista[x])) {
document.frmIngles.selectTermIngles[y] = new Option(lista[x]);
y++; } } }
function limpiarLista() {
for (x=document.frmIngles.selectTermIngles.length;x>=0 ;x--)
document.frmIngles.selectTermIngles[x] = null; }
</script>

<script>
function verseleccion1()
{
var texto

var indice = document.frmIngles.selectTermIngles.selectedIndex
var termino=document.frmIngles.selectTermIngles.option s[indice].text
$.post("miscript1.php", { variable: termino }, function(data){
$("#capaRecargar1").html(data); }); }

</script>

<script>
function verseleccion2()
{

var indice = document.frmEspanol.selectTermEspanol.selectedInde x
var termino=document.frmEspanol.selectTermEspanol.opti ons[indice].text
$.post("miscript2.php", { variable: termino }, function(data){
$("#capaRecargar2").html(data); }); }

</script>





</head>

<body>

<div id="Layer1">
<div id="titulo1"><span class="Estilo1">T&Iacute;TULO</span></div>
<h1 align="left" class="Estilo1">&nbsp;</h1>
<div id="dibujo1"></div>
<div id="dibujo2"></div>
</div>

<div id="Layer22">
<div align="center"><span class="Estilo3">Bienvenido a la demo :</span></div>
</div>

<div id="cuerpo11">
<tr>
<td><label for="entrada"></label></td>
<form id="formulario" name="formulario">
<div class="input-container"><input name="busqueda" id="busqueda" onKeyUp="buscar();"/></div>

<input type="reset" name="borrar" value="Borrar b&uacute;squeda" />
</form>
</div></td>
</tr>


Seleccione diccionario:
<form name="frmDiccionario" action='acciones.php' method="post">
<select name="selectDiccionario" id="selectDiccionario" size="1" >
<?php

$contDicc=controladorDiccionarios::getInstance();
$diccionariosArray=$contDicc->getDiccionarios();
$count = count($diccionariosArray);

?>
<?php
for ($i = 0; $i < $count; $i++) {
echo "<option value='".$diccionariosArray[$i]->getNombre()."'>".$diccionariosArray[$i]->getNombre()."</option>";

}


// $diccionarioSelect=document.frmDiccionario.selectD iccionario.value;
?>
</select>
</form>

<?php
if(isset($_POST['selectDiccionario'])){
$diccionarioSelect=$_POST["selectDiccionario"];
$contDicc->aumentarContador($diccionarioSelect);


}
?>

<!-- pestañas -->
<div>
<span style=" margin-left:10px; color: #FFF;" ><a href='javascript:seleccion(1);'>English</a></span>
<span style=""><a href='javascript:seleccion(2);'>Espa&ntilde;ol</a></span></div>





<!-- contenido de las pestañas -->
<div id="terminosIngles" style="display:block;">
<div id="capaTerminos1">
<form name="frmIngles" action='acciones.php' method="post">

<select name="selectTermIngles" id="selectTermIngles" onchange="verseleccion1()" size="30" style="width:267px;" onFocus="this.style.width='267px'" onChange="this.style.width='267px'">
<?php

$contTerm=controladorTerminos::getInstance();
$terminosArray=$contTerm->getTerminoIngles();
$count = count($terminosArray);
for ($i = 0; $i < $count; $i++) {
echo "<option value='".$terminosArray[$i]->getEntrada()."'>".$terminosArray[$i]->getEntrada()."</option>";

}
?>
</select>
</form>

</div>
<div id="capaRecargar1"></div>
</div>




<div id="terminosEspanol" style="display:none;">
<div id="capaTerminos2">
<form name="frmEspanol" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

<select name="selectTermEspanol" id="selectTermEspanol" onchange="verseleccion2()" size="30" style="width:267px;" onFocus="this.style.width='267px'" onChange="this.style.width='267px'">
<?php

$contTerm=controladorTerminos::getInstance();
$terminosArray=$contTerm->getTerminoEspanol();
$count = count($terminosArray);

?>
<?php
for ($i = 0; $i < $count; $i++) {
echo "<option value='".$terminosArray[$i]->getEntrada()."'>".$terminosArray[$i]->getEntrada()."</option>";

}

?>
</select>
</form>
<?php
// if(isset($_POST['selectTermEspanol'])){
// $selectTermIngles=$_POST["selectTermEspanol"];
// }
?>
</div>
<div id="capaRecargar2"></div>
</div>


</div>



</body>
</html>

Etiquetas: filtrar, formulario, html, input, js, php, select
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 07:47.