HTML - Evitar refrescar formulario.

 
Vista:

Evitar refrescar formulario.

Publicado por zenit (4 intervenciones) el 25/02/2016 22:41:56
Buenas

A ver si alguien me puede ayudar

Tengo un index.php con dos DIV donde uno de ellos esta oculto hasta que ejecuto un boton "Registrar" con javascript el cual hace aparecer el oculto y hace desaparecer el q se veia de inicio.

Esto lo hago con el fin de visualizar un formulario de registro. Una vez aqui hago las validaciones con correspondiente con sus mensajes de error en PHP.

El problema es q al hacer submit se ejecuta la validacion pero se refresca la pagina. si vuelvo a pulsar el boton "Registrar" consigo ver los errores en la validacion.

Mi pregunta es: ¿ Como puedo evitar que se ejectue el refresco con el fin de que se vean los errores?

SI necesitais codigos avisarme.
Espero q podais ayudarme

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jordi

Evitar refrescar formulario.

Publicado por Jordi (14 intervenciones) el 25/02/2016 23:19:31
Hola Zenit,

¿La validación se ejecuta antes de enviar y seguidamente se envía?

Si tienes una función de validar, puedes hacer que cuando se pinche en botón el formulario (onClick), no se haga nada automáticamente (preventDefault()) y cuando se haya validado, si está ok, submitear manualmente el formulario ($("#miForm").submit() con jquery).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar refrescar formulario.

Publicado por zenit (4 intervenciones) el 25/02/2016 23:48:11
La validacion se ejecuta y refresca la pagina poniendola como en el inicio. es decir... me oculta el div del registro y me aparece el div de inicio. si hago click de nuevo sobre el boton de registrar me sale el formulario con los errores de la validacion perfectamente.

Uso PHP para la validacion.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
	if (isset($_POST['registerForm'])){
		// Form has been submitted
 
		$error ="";
		if (!$_POST['username']){
			$error .= "Please, enter a name <br>";
		}
		if ($_POST['password'] != $_POST['confirmpassword']){
			$error .= "Both password does not match.<br>";
		}
		if (!$_POST['email']){
			$error .= "Please, enter a valid email<br>";
		}
		if ($error){
 
			$error = "<div class='alert alert-danger'><strong>We have found the next problem.</strong> <br>" . $error . "</div>";
		}else{
			$error = "<div class='alert alert-success'>Congratulations¡ You have been registered¡</div>";
		}
 
	}else{
		// Form has not been submitted
 
	}
 
 
?>

Cuando pongo el DIV del registro en block... todo funciona bien. el problema esta cuando lo oculto. El submit me refresca la pagina.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 1.144
Oro
Ha mantenido su posición en HTML (en relación al último mes)
Gráfica de HTML

Evitar refrescar formulario.

Publicado por xve (1543 intervenciones) el 26/02/2016 08:40:37
Hola Zenit, si la validación la haces desde PHP, se me ocurren dos cosas...
1.- Envíes tus datos para AJAX. De esta manera no se refresca la página.
2.- Una vez envíes el formulario, y al recargar la página tendrás que indicar que esa capa este visible.

Siempre queda bastante mejor utilizar AJAX.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar refrescar formulario.

Publicado por zenit (4 intervenciones) el 26/02/2016 19:37:07
Hola xve
como podria hacer que al recargar la pagina cuando envio el formulario de registro se muestre visible el div? intente poniendo un script en el php para que hicera eso pero no funcionaba.

Respecto al AJAX. si no consigo hacerlo probare ese camino aunque estoy un poco cansado de estos cambios. ya antes probre hacerlo todo con JS y me tropece con un problema q no consegui solucionar y decidi hacerlo con php. ahora toda va bien pero no consigo solucionar esto.

Muchas gracias xve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Evitar refrescar formulario.

Publicado por zenit (4 intervenciones) el 27/02/2016 01:12:59
Creo q lo q pretendo hacer es imposible. Al parecer php necesita recargar para ver los mensajes de errores de la validaciones que se hace siempre a traves del submit. la cosa es q el submit se hace de la pagina entera y frenar el submit mediante js impide la ejecucion de la validacion en php.

la unica solucion q veo es AJAX

Gracias a todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar