PHP - Informar sobre campo formulario vacio antes de enviar

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Informar sobre campo formulario vacio antes de enviar

Publicado por Unexes (124 intervenciones) el 26/10/2014 14:43:50
Hola de nuevo a tod@s.

Veréis tengo una página con un formulario (la he resumido a solo 2 campos) lo que pretendo es que al pulsar sobre el botón "Ingresar", me aparezca un div "AvisoNombre" y "Aviso1Apellido" al lado del campo que corresponde, cuando se encuentre vacío, indicándome que debo ingresar tal o cual dato antes de enviarlo, para ello he creado una función "validarregistropersonal".
Cuando pulso sobre el botón Ingresar con los 2 campos vacíos me aparece el div que corresponde al primer campo "AvisoNombre" pero no se mantiene desaparece inmediatamente.
Cuando tiene contenido el primer campo y vacío el segundo me da este error:

1
Fatal error: Call to undefined function validarregistropersonal() in C:\wamp\www\PRUEBAS\FormularioDatos\FormularioPersonal.php on line 62

En el código que pongo a continuación a esta línea le he añadido un comentario

Si pongo contenido en los 2 campos me envía todo correctamente

¿Por qué no me funciona? ¿Donde estoy cometiendo el fallo?
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
        <title>Escorts Chicas</title>
        <meta http-equiv="content-type" content="text/html;charset=UTF-8">
 
<script type="text/javascript">
function validarregistropersonal(){
		var nombrepersonal = document.getElementById("nombrepersonal");
		var apellidopersonal1 = document.getElementById("apellidopersonal1");
 
		if(!nombrepersonal.value){
			document.getElementById("AvisoNombre").style.display ="block";
			document.getElementById("AvisoNombre").innerHTML="Ingrese su Nombre";
			nombrepersonal.style.backgroundColor = "#FF0000";
			nombrepersonal.style.color = "#FFFFFF";
			//LabActividad.focus();
		return;
			}
 
		if(!apellidopersonal1.value){
			document.getElementById("Aviso1Apellido").style.display ="block";
			document.getElementById("Aviso1Apellido").innerHTML="Ingrese su Primer Apellido";
			apellidopersonal1.style.backgroundColor = "#FF0000";
			apellidopersonal1.style.color = "#FFFFFF";
		return;
			}
    }
</script>
</head>
<body>
<div id="ContenedorGeneralForPersonal">
<div id="FondoForPersonal">
 
  <form name="EnvioForPersonal" id="EnvioForPersonal" action="FormularioPersonal.php" method="post" onsubmit="return validarregistropersonal(this)">
  <div id="DatosNombre">
    <input type="text" name="nombrepersonal" id="nombrepersonal" class="Contenido2forpersonal" maxlength="30"  size="20"/></div>
 
 <div id="Datos1Apellido">
   <input type="text" name="apellidopersonal1" id="apellidopersonal1" class="Contenido2forpersonal" maxlength="25" size="20"/></div>
 
 <div id="BotonIngresarPersonal"><input type="submit" value="Ingresar" class="BotonIngresarforpersonal"/>&nbsp;&nbsp;
  </form>
 
    <div id="AvisoNombre" class="AvisoFalta" style="display:none"></div>
    <div id="Aviso1Apellido" class="AvisoFalta" style="display:none"></div>
 
<div id="MensajeRegistrar">
<?php
if (isset($_POST['nombrepersonal'])and $_POST['nombrepersonal']){
	$nombrepersonal = $_POST["nombrepersonal"];
	$apellidopersonal1 = $_POST["apellidopersonal1"];
?>
 
<?php
	if($nombrepersonal==NULL|$apellidopersonal1==NULL) {
		validarregistropersonal();// Aqui me da el error: Fatal error: Call to undefined function validarregistropersonal() in C:\wamp\www\PRUEBAS\FormularioDatos\FormularioPersonal.php on line 62
	}else{
			$query = 'INSERT INTO tb_personal (Nombre_Personal, Apellido1_Personal)
				VALUES (\''.$nombrepersonal.'\',\''.$apellidopersonal1.'\')';
				mysqli_query($conexion, $query) or die(mysqli_error());

				
				echo "<div class=\"menregistrarverde\">Tus datos Personales ".$nombrepersonal.", han sido registrados de manera <br />";
				echo 'satisfactoria. Si lo deseas puedes poner tu anuncio ahora.</div>';
							
				echo '<p><form action="../Inicio.php" method="post">';
		        echo '<input type="submit" value="¿Deseo volver al inicio" class=" BotonPonerAnuncioLuego">';
		        echo '</form></div>';
			}
}else{
 
}
?>
</div>
</div> <!-- Cierro Fondo -->
</div><!-- Cierro ContenedorGeneral -->
</body>
</html>
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Informar sobre campo formulario vacio antes de enviar

Publicado por xve (6935 intervenciones) el 26/10/2014 18:23:01
Hola Unexes, creo que el problema, es que la función validarregistropersonal() es de javascript, y tu la estas llamando desde PHP... por eso te da el error el PHP indicándote que no existe dicha función... tienes que crear en el PHP....
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
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Informar sobre campo formulario vacio antes de enviar

Publicado por Unexes (124 intervenciones) el 27/10/2014 08:38:34
Como siempre gracias xve

Disculpa pero esta vez no termino de entender como solucionarlo, estoy perdido y necesito ayuda, llevo horas haciendo pruebas y nada.

Si podéis seguir ayudándome os lo agradeceré.

Un saludo.
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: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Informar sobre campo formulario vacio antes de enviar

Publicado por xve (6935 intervenciones) el 27/10/2014 10:07:37
Hola Unexes, el tema es que desde PHP no puedes llamar a una función de javascript como estas haciendo en la linea que te da el error.

Tienes que realizar la validación desde código PHP...

En tu código, cuando llamas a la función: validarregistropersonal(), que quieres que haga en esa función?
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
sin imagen de perfil
Val: 6
Ha aumentado su posición en 23 puestos en PHP (en relación al último mes)
Gráfica de PHP

Informar sobre campo formulario vacio antes de enviar

Publicado por Unexes (124 intervenciones) el 27/10/2014 11:14:21
De nuevo gracias xve y a todos los demás por estar ahí.

Veras lo que quiero es que si se pulsa el botón de "Ingresar" antes de terminar de rellenar el formulario o si se ha dejado un campo vacío, al recargarse la página ya que el form llama a la misma página, me muestre el div que he puesto junto al campo vacío indicando que es necesario rellenarlo para poder enviar el formulario y si todos lo campos contienen datos que me envié el formulario.

Disculpa si no me he esplicado anteriormente bien, pero mi cabeza en estos momentos no rige bien, ya que no se, que pruebas he hecho y cuales no, en estos momentos estoy probando en la parte donde llamaba a la función y me daba el error, con If y elseif, todavía no se si funcionara, pero si lo hiciera no te quepa la menor duda que pondré como lo he resuelto para que algo que se que es una tontería no le haga perder tanto tiempo a nadie más como me lo esta haciendo perder a mí.

Un saludo
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
sin imagen de perfil

Informar sobre campo formulario vacio antes de enviar

Publicado por sistemas (1 intervención) el 08/11/2014 04:22:17
hola cuate Unexes

sabes para trabajar con Javascript tienes que saber como se realizan las validaciones

onsubmit="return validarregistropersonal();" es la forma correcta

var nombrepersonal = document.getElementById("nombrepersonal").vakue; ===>> observa bien

y para ver resultados solo maneja la funcion alert("se genero el error");

busca por la Web validaciones en Javascript


Saludos
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