Foros del Web » Programando para Internet » PHP »

Ayuda con código que tengo

Estas en el tema de Ayuda con código que tengo en el foro de PHP en Foros del Web. Hola a [email protected]: 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 ...
  #1 (permalink)  
Antiguo 27/08/2004, 16:11
 
Fecha de Ingreso: octubre-2003
Mensajes: 146
Antigüedad: 14 años, 1 mes
Puntos: 1
Ayuda con código que tengo

Hola a [email protected]:

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";
?>

&nbsp;&nbsp;
<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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<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>&nbsp;&nbsp;&nbsp;
<TD><input type="text" name="paginicialField" size="10">&nbsp;&nbsp;<b>final:</b>&nbsp;&nbsp;&nbsp;
<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>
__________________
·۰•●Pi®®ili●•۰· Lo esencial es invisible a los ojos
  #2 (permalink)  
Antiguo 27/08/2004, 21:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con tanta capa y javascript me perdí .. Pero, te hago una propuesta:

Fijate en el código HTML/javscript que generas vía PHP y pruebalo de forma independiente con datos fijos .. Si eso falla el problema es Javascript o tu tratamiento de capas. El caso es "determinar" donde está el problema .. sies PHP o HTML/javascript que empleas. Pero .. en algún punto de tu mensaje dices que todavía no dominas el tema de "capas" .. así que deberías resolver el problema primero con datos fijos (Javascript/HTML) y luego "meter" PHP por médio para las partes que corresponda.

Un saludo,
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 09:16.