Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/08/2010, 10:36
Avatar de gengeru
gengeru
 
Fecha de Ingreso: agosto-2006
Mensajes: 9
Antigüedad: 17 años, 9 meses
Puntos: 0
llamada a un select para mostrar/ocultar un INPUT

Hola foreros,

estoy intentando crear unas listas desplegables en las que, a parte de las opciones generadas por php desde una BD, exista otra que haga aparecer un input (que debe permanecer desactivado y oculto si no se selecciona esta opción) que permita añadir un nuevo registro a la BD. Tengo un problema con la llamada al valor (value) de la opción elegida en los <select> del formulario de entrada de datos de la BD y necesito una ayudita porque no consigo definir la variable que contenga dicho valor (y seguro que es algo básico pero javascript no lo conozco bien). Para abreviar, dejo el código necesario:

Javascript:

La idea es que esta variable almacene el value del option ("añadir COSA",debe ser numérico, en mi caso, del 1 al 8) de forma que al seleccionar dicha opción se activa un input. Necesito hacerlo asi porrque conecto con bases de datos y los nombres de los campos son únicos y no pueden duplicarse. Si le diese el valor - $n = 1; - el código funcionaría para el primer select pero no para el resto...
<script type="text/javascript">
var $n = document.getElementById("sel").value;
var $id = 'nuevo'+$n;
function mostrarInput(valor)
{
if(valor!=$n)
{
document.getElementById($id).style.visibility="hid den";
document.getElementById($id).disabled=true;
} else {
document.getElementById($id).style.visibility="vis ible";
document.getElementById($id).disabled=false;
}
}
</script>

HTML:

<select size="1" name="NombreCOSA1" maxlength="30" onchange="mostrarInput(this.value)" id="sel">
<option value="">Selecciona una "COSA1"</option>
<?php .....//aquí me devuelve consultas de la BD.... ?>
<option value="1">Añadir COSA1</option>
</select>
<input style="visibility:hidden" name="NombreCOSA1" maxlength="30" size="30" disabled="disabled" id="nuevo1" ></input >

<select size="1" name="NombreCOSA2" maxlength="30" onchange="crearInput(this.value)" id="sel">
<option value="">Selecciona una "COSA2"</option>
<?php .....//aquí me devuelve consultas de la BD.... ?>
<option value="2">Añadir COSA2</option>
</select>
<input style="visibility:hidden" name="NombreCOSA2" maxlength="30" size="30" disabled="disabled" id="nuevo2" ></input >

Espero haberme explicado, si no, puedo dar más detalles. Tiene que haber una forma de que al usar el método document.getelementbyid("sel"), éste me devuelva el valor del option seleccionado; o sea, 1, 2,.... etc.

Desde ya, muchas gracias por vuestro tiempo

Última edición por gengeru; 10/08/2010 a las 10:43