Foros del Web » Programando para Internet » PHP »

ayuda en formulario

Estas en el tema de ayuda en formulario en el foro de PHP en Foros del Web. Hola! bueno antes de nada gracias por leer este tema.No sabia si ponerlo en javascript o php, siento si me he equivocado, es mas no ...
  #1 (permalink)  
Antiguo 08/01/2008, 12:14
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 0
ayuda en formulario

Hola! bueno antes de nada gracias por leer este tema.No sabia si ponerlo en javascript o php, siento si me he equivocado, es mas no se si pueden juntarse las dos cosas como en esta ocasión.
Mi problema es que tengo un formulario que esta validado en un js y lo que necesito es una vez valide vaya a una página que yo quiero es decir.. os pongo mi codigo.

Código HTML:
<form action="registro.php" onsubmit="return comprueba();" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="hidden" value="1" id="inicio" name="inicio">
            <table align="center" border="0" cellpadding="0" cellspacing="0" width="450">
              <tr> 
                <td class="espacios">Nombre&nbsp;<font color="#ff0000">*</font></td>
				</tr><tr>
                <td class="espacios"><input name="nombre" type="text" id="nombre"></td>
              </tr>
              <tr>
			  <td class="espacios">Apellido1<font color="#ff0000"> *</font></td>
			  </tr><tr>
			  <td class="espacios"><input name="apellido1" id="apellido1" type="text"></td>
			  </tr>
			  <tr> 
                <td class="espacios">Movil<font color="#ff0000"> *</font></td>
</tr><tr>
                <td class="espacios"><label>
                  <input type="text" name="telefono" id="telefono" />
                </label></td>
              </tr>
			  <tr> 
                <td class="espacios">Usuario<font color="#ff0000"> *</font>&nbsp;</td>
				</tr><tr>
                <td class="espacios"><input name="usuario" id="usuario" type="text"></td>
              </tr>
			  <tr> 
                <td class="espacios">E-mail <font color="#ff0000">*</font>&nbsp;</td>
</tr><tr>
                <td class="espacios"><input name="email" id="email" type="text"></td>
              </tr>
			  <tr><td height="15"></td></tr>
			  <tr> 
                <td colspan="2" class="espacios">Bases <font color="#ff0000">*</font>&nbsp;
                  <input name="bases" type="checkbox" class="Estilo5" value="ok" />
                  Acepto y me comprometo al cumplimiento de lo establecido en &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; las <a href="baseslegales.htm">bases legales</a> de la presente promoci&oacute;n.             </td>

                
              </tr>
			  <tr><td height="15"></td></tr>
              <tr> 
                  <td width="147" align="left" valign="bottom"><a href="javascript:document.form1.onsubmit()"><img src="imagenes/boton-enviar.gif" border="0"/></a></td>
              </tr>
              </table>
          </form> 


Ese es el codigo del formulario entonces hace el onsubmit y va al .js alli como vereís acontinuación realizar una validacion y devuelve true o false depende de la validación, pero una vez hace eso, yo quiero que vaya a una pagina que se llama registro.php para guardar los datos tal y como pone en el action del formulario [action="registro.php"].

Mi codigo js es el siguiente(la validación la hace bien) pero luego aparece una pagina en blanco y pone true:

Código:
function comprueba(){
	
		if( 
			document.form1.nombre.value == "escribe tu nombre" ||
			document.form1.nombre.value == "" ||
			document.form1.apellido1.value == "escribe tu primer apellido" ||
			document.form1.apellido1.value == "" ||
			document.form1.telefono.value == "escribe tu movil" ||
			document.form1.telefono.value == "" ||
			document.form1.usuario.value == "escribe tu usuario" ||
			document.form1.usuario.value == "" ||
			document.form1.email.value == "escribe tu e-mail" ||
			document.form1.email.value == "" 
			
			)
		{
		
			alert("Debes rellenar los campos obligatorios");
			
		}else{
		
				if(! /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.form1.email.value)){
		
						alert("Debes introducir una dirección de e-mail válida")
		
				}else{
						
						if(document.form1.usuario.value=="escribe tu usuario" || document.form1.usuario.value=="")
						{
						alert("Debes introducir un usuario para poder resgistrarte");
						}else{
						
							if(document.form1.telefono.value=="escribe tu teléfono" || document.form1.telefono.value=="")
								{
										if(document.form1.bases.checked)
										{
											return true;
												//document.form1.submit();
											}else
											{
												alert("Debes aceptar las bases para poder registrate");
											}
								}else{
								
										if(isNaN(document.form1.telefono.value )) 
										{
												alert("El teléfono debe tener sólo números");
										} else {
												if(document.form1.telefono.value.length < 9)
													{
													alert("El teléfono debe tener 9 cifras");
													}else{
														if(document.form1.bases.checked){
															//document.form1.submit();
															return true; 
														}else{
															alert("Debes aceptar las bases para poder registrate");
														}
													}
									
										}
								}
							
							
						}
		
				}
				
		}
		
	}
A ver si alguién puede darme alguna solución. o alguna otra forma de hacerlo, en verdad solo quiero validar un formulario para luego meterlo en una bbdd a traves del php.
Muchas gracias.
Un saludo
  #2 (permalink)  
Antiguo 08/01/2008, 13:50
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: ayuda en formulario

Umm, eso es javascript. Nunca lo he hecho como tú lo intentas hacer, así que desconozco cómo sería.

Con mis conocimientos lo que haría es lo siguiente:

<form action="registro.php" method="post" enctype="multipart/form-data" name="form1" id="form1">

Luego que el botón llame a una función, por ejemplo mandar()

y en esa función:

function mandar() {
if comprueba() document.form1.submit;
}

Más o menos sería algo así. La lógica es llamar a tu función y si devuelve true hacer un submit del formulario. No estoy muy seguro, pero creo que se hacía así.
  #3 (permalink)  
Antiguo 08/01/2008, 16:49
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: ayuda en formulario

Ok gracias, voy a intentarlo a ver si mas o menos lo he entendido.
  #4 (permalink)  
Antiguo 08/01/2008, 19:16
Avatar de lacho  
Fecha de Ingreso: enero-2008
Mensajes: 26
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: ayuda en formulario

bueno mira esque no necesitas llamar la funcion en onsubmit porque te ocurre lo que decis que ocurre, es mejor que no hagas una sola funcion sino que varias, t recomiendo una para cada control porque eso te permitiria hacer un script generico de javascript, bueno y en cada control cuando pierda el foco que te lo valide y asi te va a validar dentro del html y no te mandara al script php(porque eso es lo que logras cuando le decis que valide en el onsubmit),porque acordate que el javascript es cliente y no necesitas mandarlo al servidor
  #5 (permalink)  
Antiguo 10/01/2008, 04:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 27
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: ayuda en formulario

Buenas chavales!
Funcionan los casos que me habeis comentado.

Muchas gracias
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 02:59.