Foros del Web » Programando para Internet » PHP »

Mas problemas con formularios

Estas en el tema de Mas problemas con formularios en el foro de PHP en Foros del Web. Hola de nuevo!!! Bueno, tengo de nuevo un problemilla con un formulario, bien ahora si me hace caso cuando le doy al boton de registrar ...
  #1 (permalink)  
Antiguo 08/02/2006, 04:40
 
Fecha de Ingreso: febrero-2006
Mensajes: 32
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta Mas problemas con formularios

Hola de nuevo!!!
Bueno, tengo de nuevo un problemilla con un formulario, bien ahora si me hace caso cuando le doy al boton de registrar pero solo me coge algunos datos no todos.
El formulario rellena varias tablas de la base de datos, bueno pos solo me rellena una de las tablas.
El codigo es el siguiente:
echo <<<HTML
<form method="post" action="$PHP_SELF?accion=hacernuevo" id="form_registrar">
<table width="756" border="1" cellspacing="0" cellpadding="0" bordercolor="#f7f7f7" align="center">
<tr bordercolor="#CCCCCC" bgcolor="#f7f7f4">
<td height="30" colspan="3"> <div align="center"><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2" color="#0033CC"><b>NUEVO
EQUIPO</b></font></div></td>
</tr>
<tr>
.......................
<td width="664" bgcolor="#f7f7f7"></td>
</tr>
<tr>
-----Aqui empiezan los datos para rellenar las otras tablas
<td width="100"><div align="left"><font face="Tahoma, Arial, Verdana" color="#000033" size="2" ><b>Servicio:</b>
</font></div></td>
<td width="140"><div align="left"><font face="Tahoma, Arial, Verdana" color="#000033" size="2" >Referencia del servico:
</font></div></td>
...........
<td><input name="periocidadIDS" type="text" id="periocidadIDS" size="40"></td>
<td><input name="f_finIDS" type="text" id="f_finIDS" size="40"></td>
<td colspan="3"><b><font face="Tahoma, Verdana,Arial, sans-serif" size="2">
<form action="subearchivo.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<input name="userfile" type="file" size="30">
</div></td></form>
</tr>
<tr bgcolor="#f7f7f4">
<td colspan="2" height="40"> <div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="button" name="Submit" align="center" value=" Registrar " class="botones" onclick="javascript:document.getElementById('form_ registrar').submit();">
</font></b> </div></td><td bgcolor="#f7f7f4"></td>
</tr>
</table>
<div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
</font></b> </div>
</form>
if($_GET['accion']=="hacernuevo"){
....................
$nombreMant=$_POST['nombre_mant'];
$nombreLic=$_POST['nombreLic'];
.............
if($nombreMant!=""){
echo"Estoy dento de mantenimiento";
$referenciaHard=$_POST['referenciaHard'];
.......
mysql_query("INSERT INTO mantenimientoH(referenciaHard,nombre_mant,num_usua riosHard,fe_inicioHard,periocidadHard,fe_finHard, codEquipo) VALUES ('$refereciaHard','$nombreMant','$num_usuariosHard ','$fe_inicioHard','$periocidadHard','$f_renovacio nHard','$clave')");
....................

}//fin de accion hacernuevo

Bueno, es muy lioso verlo asi pero entero no puedo ponerlo. El fallo imagino estara en la parte q he puesto en negro.
Muchas gracias
  #2 (permalink)  
Antiguo 08/02/2006, 05:32
 
Fecha de Ingreso: febrero-2006
Mensajes: 32
Antigüedad: 18 años, 2 meses
Puntos: 0
Pregunta

si lo hago como pongo aqui tampoco me rellena las tablas de la base de datos:

<form method="post" action="$PHP_SELF?accion=siguiente&id=$idcliente" id="form_registrar">
<table width="756" border="1" cellspacing="0" cellpadding="0" bordercolor="#f7f7f7" align="center">
<tr bordercolor="#CCCCCC" bgcolor="#f7f7f4">
<td height="30" colspan="3"> <div align="center"><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2" color="#0033CC"><b>NUEVO
EQUIPO</b></font></div></td>
</tr>
<tr>
<td width="140"><div align="left"><font face="Tahoma, Arial, Verdana" color="#000033" size="2" ><b>Tipo de equipo:</b>
</font></div></td>
<td colspan="2"><b><font face="Tahoma, Verdana,Arial, sans-serif" size="2">
<input name="tipoEq" type="text" class="imputbox" id="tipoEq" size="88" maxlength="40">
</div></td>
........................
<tr bgcolor="#f7f7f4">
<td colspan="2" height="40"> <div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="button" name="Submit" align="center" value=" Registrar " class="botones" onclick="javascript:document.getElementById('form_ registrar').submit();">
</font></b> </div></td><td bgcolor="#f7f7f4"></td>
</tr>
</table>
<div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
</font></b> </div>
</form>

Este primer formulario seria para una tabla, y ahora lo siguiente seria otro formulario para rellenar las demas tablas dependiendo del serivicio:
HTML;
}//fin de if nuevo
if($_GET['accion']=="siguiente"){
echo <<<HTML
<form method="post" action="$PHP_SELF?accion=hacernuevo&id=$idcliente" id="form_registrar">
<table width="756" border="1" cellspacing="0" cellpadding="0" bordercolor="#f7f7f7" align="center">
<tr bordercolor="#CCCCCC" bgcolor="#f7f7f4">
<td height="30" colspan="3"> <div align="center"><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2" color="#0033CC"><b>SERVICIOS DEL NUEVO
EQUIPO</b></font></div></td>
</tr>
<tr>
<td width="100"><div align="left"><font face="Tahoma, Arial, Verdana" color="#000033" size="2" ><b>Servicio:</b>
</font></div></td>
<td width="140"><div align="left"><font face="Tahoma, Arial, Verdana" color="#000033" size="2" >Referencia del servico:
</font></div></td>
...........................
<tr bgcolor="#f7f7f4">
<td colspan="2" height="40"> <div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
<input type="button" name="Submit" align="center" value=" Registrar " class="botones" onclick="javascript:document.getElementById('form_ registrar').submit();">
</font></b> </div></td><td bgcolor="#f7f7f4"></td>
</tr>
</table>
<div align="center"><b><font face="Tahoma, Verdana, Arial, Helvetica, sans-serif" size="2">
</font></b> </div>
</form>

HTML;
}//fin de if siguiente
//Aqui se acaba el formulario. Ahora a meter los datos en la base de datos
if($_GET['accion']=="hacernuevo"){
$tipoEq=$_POST['tipoEq'];
$codigo=$_POST['codigo'];
....................
mysql_query("INSERT INTO equipos(tipoEq, codigo,codVentas,marca,tecnico,direcc_IP,f_inicio, usuario,pass,descripcion,configuracion,proveedor) values('$tipoEq','$codigo','$codVentas','$marca',' $tecnico','$direcc_IP','$f_inicio','$usuario','$pa ss','$descripcion','$configuracion','$prov[claveP]')") or die("Error al intentar guardar los datos en Nuevo2");
$nombreMant=$_POST['nombre_mant'];
$nombreLic=$_POST['nombreLic'];
if($nombreMant!=""){
echo"Estoy dento de mantenimiento";
$referenciaHard=$_POST['referenciaHard'];
$num_usuariosHard=$_POST['num_usuariosHard'];
$fe_inicioHard=$_POST['fe_inicioHard'];
$periocidadHard=$_POST['periocidadHard'];
$f_renovacionHard=$_POST['fe_finHard'];
//introducimos los datos en la tabla correspondiente al servicio en el que estamos
$sql="INSERT INTO mantenimientoH(referenciaHard,nombre_mant,num_usua riosHard,fe_inicioHard,periocidadHard,fe_finHard, codEquipo) VALUES ('$refereciaHard','$nombreMant','$num_usuariosHard ','$fe_inicioHard','$periocidadHard','$f_renovacio nHard','$clave')";
echo $sql."<br>";
mysql_query("INSERT INTO mantenimientoH(referenciaHard,nombre_mant,num_usua riosHard,fe_inicioHard,periocidadHard,fe_finHard, codEquipo) VALUES ('$refereciaHard','$nombreMant','$num_usuariosHard ','$fe_inicioHard','$periocidadHard','$f_renovacio nHard','$clave')");
mysql_query("UPDATE ventas SET tipoEquipo='$tipoEq',fecha_inicio='$f_inicio',tipo _mant='$referenciaHard' WHERE codCliente=$idcliente AND codEquipo='$clave'") or die("Error al intentar guardar los datos en Nuevo4");
}//fin del if de tipo de servicio de licencia
if($nombreLic!=""){
.............
}
..............
}//fin de accion hacernuevo
  #3 (permalink)  
Antiguo 08/02/2006, 07:47
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
POR FAVORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR

USA LAS ETIQUETAS PARA MARCAR LOS CODIGOS

Sinceramente no entendi bien el codigo, por favor edita tus post y enmarcalos en sus respectivas etiquetas

Gracias.
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #4 (permalink)  
Antiguo 08/02/2006, 10:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes un tremendo lío en el HTML de tus formularios ..

"Parece" (por qué realmente se hace complicado leer el código que pusistes) que intentas anidar dos formularios (el principal y ese que llamas a un archivo con un campo file) .. Eso NO se puede hacer (y el problema es de HTML y uso de formularios .. nada que ver con PHP).

Consejos:

<form method="post" action="$PHP_SELF?accion=siguiente&id=$idcliente" id="form_registrar">

Mete esas variables de acción y el "id" en campos hidden de tu formulario para que los recibas en $_POST en tu script de proceso!. Usa los arrays superglobales para todo .. no puedes hacer $PHP_SELF y por otro lado $_POST['variable'] .. en fin . .eso es otro tremendo lio!.


Un saludo,
  #5 (permalink)  
Antiguo 08/02/2006, 12:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 32
Antigüedad: 18 años, 2 meses
Puntos: 0
Sonrisa

Muchas gracias por la ayuda, y comprendo q esta lioso esq nose como lo hago pero siempre hago todo de la manera mas enredosa posible y no lo hago aposta esq me sale asi.
Voy hacer algunas modificaciones a ver q pasa y ya os voy comentando., pero en serio muchas gracias.
Un saludo
  #6 (permalink)  
Antiguo 08/02/2006, 14:21
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 19 años, 4 meses
Puntos: 1
Algunas recomendaciones:

1. Separa el formato en un archivo .css, algunas aplicaciones comerciales como DreamWeaver ya lo hacen por ti. Trata de no usar FrontPage.

2. Utiliza en tus formularios un código aleatorio como variable oculta que te permita identificar el formulario. Esto evitará que tengas elementos repetidos en tu base de datos. Muchas veces los usuarios dan click al botón justo cuando ya había cargado los datos o bien, se regresan al formulario para hacer algún cambio, le vuelven a dar click en submit y sorpresa, ya tienes datos duplicados.

3. De preferencia, para evitar gente fastidiosa, pon una imagen en tu formulario para corroborar que tu visitante es un ser humano (esto es más para evitar seudohackers molestones).
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 21:07.