Hola a tod@s:
Estoy realizando un formulario mediante capas,javascript,etc... pero no me funciona como debería.Al inicio del script tengo una lista despegable y en función de la elección que se haga pues deberían de salir unos campos u otros(campos de texto,radiobuttons,...) y un botón enviar los datos y demás.Pues bién,una vez que ejecuto el script parece que funciona correctamente pero cuando elijo en la lista despegable la primera opción y relleno el campo título cuando le doy a enviar me sale el error que el título debe rellenarse pero cuando elijo la tercera opción(sólo tengo implementadas la primera y tercera opción) si me sale correctamente el resultado y me sale el mensaje se ha registrado correctamente y me sale el título que he introducido y demás.No sé qué pasa porque ambos subformularios los he hecho idénticos,únicamente he cambiado los campos que salen en cada subformulario.
Seguramente esté haciendo mal las estructuras de las capas,etc... pero es que llevo poco tiempo en este mundo y todavía no sé bien como van las capas y demás,a ver si me podéis ayudar.Un saludo amigos ;)
Aquí va el codigo:
......
<script language="javascript">
var nc = (document.layers) ? true:false
var ie = (document.all) ? true:false
var n6 = (document.getElementById) ? true:false
function cambia(valor)
{
switch(valor)
{
case "":
if(ie)
{
document.all['capa1'].style.visibility='hidden';
document.all['capa2'].style.visibility='hidden';
}
else if(nc)
{
document.layers['capa1'].style.visibility='hidde';
document.layers['capa2'].style.visibility='hidde';
}
else if(n6)
{
document.getElementById('capa1').style.visibility= 'hidden';
document.getElementById('capa2').style.visibility= 'hidden';
}
break;
case 'proyectoid':
if(ie)
{
document.all['capa1'].style.visibility='visible';
document.all['capa2'].style.visibility='hidden';
}
else if(nc)
{
document.layers['capa1'].style.visibility='show';
document.layers['capa2'].style.visibility='hidde';
}
else if(n6)
{
document.getElementById('capa1').style.visibility= 'visible';
document.getElementById('capa2').style.visibility= 'hidden';
}
break;
case 'publicacion':
if(ie)
{
document.all['capa1'].style.visibility='hidden';
document.all['capa2'].style.visibility='visible';
}
else if(nc)
{
document.layers['capa1'].style.visibility='hidde';
document.layers['capa2'].style.visibility='show';
}
else if(n6)
{
document.getElementById('capa1').style.visibility= 'hidden';
document.getElementById('capa2').style.visibility= 'visible';
}
break;
}
}
function init() {
if (ie) {
document.all['capa1'].style.visibility='hidden';
document.all['capa2'].style.visibility='hidden';
}
if (nc) {
document.layers['capa1'].style.visibility='hidde';
document.layers['capa2'].style.visibility='hidde';
}
if (n6) {
document.getElementById('capa1').style.visibility= 'hidden';
document.getElementById('capa2').style.visibility= 'hidden';
}
}
</script>
<body onLoad="init()">
<?PHP
// Si se ha enviado el formulario
if (isset($enviar))
{
// Mostrar noticia
?>
<H2>Registro Nuevo Mérito</H2><hr>
<br><b>Resultado de la inserción del nuevo mérito</b><br>
<?PHP
// Obtener datos introducidos desde el formulario
// Comprobar que se han introducido todos los datos obligatorios
$errores = "";
if (trim($tituloField) == "")
$errores = $errores . "<LI>Se requiere el título del mérito";
}
if ($errores != "")
{
print ("No se ha podido realizar la inserción debido a los siguientes errores:");
print ("<UL>");
print ($errores );
print ("</UL>");
print ("[ <A HREF='javascript:history.back()'>Volver</A> ]");
exit();
}
// Aquí vendría la inserción del archivo en el servidor
// Mover archivo a su ubicación definitiva
if ($copiarFichero)
move_uploaded_file ($_FILES['archivo']['tmp_name'],
$nombreDirectorio . $nombreFichero);
// Mostrar datos introducidos
print ("El mérito ha sido registrado correctamente:");
print ("<UL>");
print ("<LI>Título: $tituloField\n");
print ("<LI>Texto: $texto\n");
print ("<LI>Categoría: $categoria\n");
print ("<LI>Archivo: <A TARGET='_blank' HREF='" . $nombreDirectorio . $nombreFichero . "'>" . $nombreFichero . "</A>");
print ("</UL>");
print ("<BR>");
print ("[ <A HREF='forminsertarmerito.php'>Insertar otro mérito</A> ]");
?>
<?PHP
}
else
{
// Introducir mérito
?>
<H2>Registro Nuevo Mérito</H2>
<b>Tras registrar el mérito usted quedará registrado como responsable/autor de dicho mérito.</b><hr>
<FORM ACTION="insertarmerito.php" METHOD="POST" ENCTYPE="multipart/form-data">
<b>Seleccione el tipo de mérito que desea registrar: </b>
<select name="tipomerito" onchange="cambia(tipomerito[tipomerito.selectedIndex].value)">
<option value="" selected>-----------------------------Seleccione el tipo de mérito------------------------------</option>
<option value="proyectoid">Partipación en Proyecto de I+D financiado en Convocatoria Pública</option>
<option value="contratoid">Partipación en Contrato de I+D con Empresa y/o Administración</option>
<option value="publicacion">Publicación o Documento Científico-Técnico</option>
<option value="patente">Patente y Modelo de utilidad</option>
<option value="congreso">Contribución a Congreso</option>
<option value="tesis">Tesis Doctoral</option>
<option value="organid">Experiencia en organización de actividad de I+D</option>
<option value="otromerito">Otro mérito o aclaración</option>
</select>
<br>
<div id=capa1 style="position:absolute">
<TABLE>
<TR><TD><b>Título: *</b></TD>
<TD><textarea name="tituloField" cols="30" rows="4"></textarea></TD></TR>
<TR><TD><b>Entidad financiadora: </b></TD>
<TD><input type="text" name="entfinancField" size="80"></TD></TR>
<TR><TD><b>Entidades participantes: </b></TD>
<TD><input type="text" name="entpartField" size="80"></TD></TR>
<tr><td><b>Duración: </b><td><b>Desde: </b><?php
echo "<SELECT NAME=diainicio\n";
for ($i = 1; $i <= 31; $i++){
if ($i == 1) echo "<option value=$i selected>$i</option>\n";
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
echo "</SELECT>\n";
echo "<SELECT NAME=mesinicio\n";
for ($i = 1; $i <= 12; $i++){
if ($i == 1) echo "<option value=$i selected>$i</option>\n";
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
echo "</SELECT>\n";
echo "<SELECT NAME=annoinicio\n";
for ($i = 1965; $i <= 2007; $i++){
if ($i == 2004) echo "<option value=$i selected>$i</option>\n";
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
echo "</SELECT>\n";
?>
<b>Hasta:</b>
<?php
echo "<SELECT NAME=diafin\n";
for ($i = 0; $i <= 31; $i++){
if ($i == 31) {
echo "<option value=$i selected>$i</option>\n";
} else {
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
}
echo "</SELECT>\n";
echo "<SELECT NAME=mesfin\n";
for ($i = 0; $i <= 12; $i++){
if ($i == 12) {
echo "<option value=$i selected>$i</option>\n";
} else {
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
}
echo "</SELECT>\n";
echo "<SELECT NAME=annofin\n";
for ($i = 1965; $i <= 2007; $i++){
if ($i == 2004) echo "<option value=$i selected>$i</option>\n";
echo "<OPTION VALUE=$i>$i</OPTION>\n";
}
echo "</SELECT>\n";
?>
</td>
<TR><TD><b>Cuantía subvención: </b></TD>
<TD><input type="text" name="cuantiaField"><b> €uros</b></TD></TR>
<TR><TD><b>Núm. investigadores part.: </b>
</TD>
<TD><input type="text" name="numinvestField"></TD></TR>
<TR><TD><b>Subir archivo: </b></TD>
<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="1024000">
<INPUT TYPE="FILE" SIZE="44" NAME="archivo"></TD></TR>
<TR><TD></TD>
<TD><INPUT TYPE="SUBMIT" NAME="enviar" VALUE="Registrar mérito">
<INPUT TYPE="RESET" VALUE="Borrar formulario"></TD></TR>
</TABLE>
</div>
<div id=capa2 style="position:absolute">
<TABLE>
<TR><TD><b>Título: *</b></TD>
<TD><textarea name="tituloField" cols="30" rows="4"></textarea></TD></TR>
<TR><TD><b>Referencia: </b></TD>
<TD>
<input type="text" name="nombrerefField" size="70">
<input type="checkbox" name="revista"><b>revista</b>
<input type="checkbox" name="libro"><b>libro</b></TD>
</TR>
<TR><TD><b>Clave: </b></TD>
<TD><b>
<input type="radio" name="L" value="L" checked>L (libro completo)
<input type="radio" name="CL" value="CL">CL (capítulo de libro)
<input type="radio" name="A" value="A">A (artículo)
<input type="radio" name="R" value="R">R (review)
<input type="radio" name="E" value="E">E (Editor)
<input type="radio" name="S" value="S">S (Documento Científico-Técnico restringido)</TD></b>
<TR><TD><b>Volumen: </b></TD>
<TD><input type="text" name="volumenField"></TD></TR>
<TR><TD><b>Páginas,inicial: </b></TD>
<TD><input type="text" name="paginicialField" size="10"> <b>final:</b>
<input type="text" name="pagfinalField" size="10"> </TD></TR>
<TR><TD><b>Subir archivo: </b></TD>
<TD><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="1024000">
<INPUT TYPE="FILE" SIZE="44" NAME="archivo"></TD></TR>
<TR><TD></TD>
<TD><INPUT TYPE="SUBMIT" NAME="enviar" VALUE="Registrar mérito">
<INPUT TYPE="RESET" VALUE="Borrar formulario"></TD></TR>
</TABLE>
</div>
</FORM>
<?PHP
}
?>
</body>
</html>