Hola, tengo un problema al intentar enviar un valor a través de un formulario oculto.
Tengo una clase jsp en la que hago lo siguiente:
// saco de mi base de datos la información necesaria para mostrar en un formulario, de modo que el siguiente código es un desplegable donde aparecen todas las "metodologias" que hay almacenadas. Con esto no hay problema
<%
for(int i=0; i < numeroMetodologias ; i++) {
int id=(Integer)listaMetodologias.get(i);
metod=mimetod12.getDetails(id);
metodologia+="<option value='" + metod.getIdMetodologia() + "'>" + metod.getNombre()+ " (" + metod.getDescripcion() +") </option>";
%>
<% }
metodologia+="</select>";%>
// y luego, les muestro para seleccionar sólo una
<tr>
<td align="center" bgcolor="#666699" class="camposform1">Seleccione Metodologia: </td>
<td align="center" bgcolor="#666699" class="camposform1"><%=metodologia%></td>
</tr>
// entonces, quiero almacenar la "metodologia" seleccionada.
// yo hago lo siguiente:
<tr>
<td align="center" bgcolor="#666699" height="25" colspan="2">
<input name="Submit" type="submit" class="botonesform1" onclick="javascript:validar(<%=(metod.getIdMetodol ogia())%>);" value="<%=language_nuevoProyecto.cadena[2]%>">
</td>
</tr>
// porque cojo el identificador de esa metodología (getIdMetodologia) para pasárselo, a otra clase, al principio del formulario tengo:
<form name="frmAltaProy" method="post" action="insertarProyecto.jsp" onSubmit="return validarAlta(this);">
<input type="hidden" name="idMetodologia">
// es decir, que paso el valor "idMetodologia" a la clase "insertarProyecto.jsp"
// y claro, tengo definidas:
<script language="JavaScript" type="text/JavaScript">
function validar(idMetodologia)
{
document.frmAltaProy.option.value="validacionMetod ologia";
document.frmAltaProy.idMetodologia.value=idMetodol ogia;
document.frmAltaProy.submit();
}
function validarAlta(frmAltaProy){
var bValido=false;
if (isVacio(document.frmAltaProy.sNombre.value)){
document.frmAltaProy.sNombre.focus();
document.frmAltaProy.sNombre.select();
bValido=false;
}
else if (isVacio(document.frmAltaProy.sDescripcion.value)) {
document.frmAltaProy.sDescripcion.focus();
document.frmAltaProy.sDescripcion.select();
bValido=false;
}
else{
bValido=true;
}
if (!bValido)
alert("Revise los campos obligatorios");
return bValido;
}
</script>
Entonces, me doy cuenta de que siempre el valor de <%=(metod.getIdMetodologia())%> es el último valor de la lista,porque lo he imprimido en este mismo jsp (que no tiene por qué ser ese el valor seleccionado, puede ser cualquiera), pero aún así, me pasa al siguiente jsp el valor null, y no entiendo por qué...
No sé si me habré explicado con suficiente claridad, pero si alguien sabe como ayudarme...
Muchísimas gracias.