Foros del Web » Programando para Internet » PHP »

validacion de campos en formulario

Estas en el tema de validacion de campos en formulario en el foro de PHP en Foros del Web. hola amigos del foro... tengo un problema con un codigo de validacion ke agrege a mi formulario sin la funcion de validacion los datos son ...
  #1 (permalink)  
Antiguo 19/09/2009, 14:48
 
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
validacion de campos en formulario

hola amigos del foro...

tengo un problema con un codigo de validacion ke agrege a mi formulario

sin la funcion de validacion los datos son enviados a mi base de datos normalmente, pero cuando agrego la funcion de validacion no se envian los datos a mi base de datos no se ke pasa alguien podria orientarme porfavor!!!
Código PHP:
<html>
<
head>
<
title>Formulario de Registro</title>
<
style type="text/css">
<!--
.
style1 {color#FFFFFF}
.style2 {
    
font-familyVerdanaArialHelveticasans-serif;
    
font-size16px;
    
font-weightbold;
}
.
style3 {
    
color#FFFFFF;
    
font-familyVerdanaArialHelveticasans-serif;
    
font-size16px;
    
font-weightbold;
}
.
style4 {
    
font-familyVerdanaArialHelveticasans-serif;
    
font-weightbold;
}
-->
</
style>
<
script>
function 
valida_envia(){
        
//valido el nombre
     
if (document.formprin.nombre.value.length==0){
       
alert("Tiene que escribir su nombre.")
       
document.formprin.nombre.focus()
       return 
0;
    }

    
//valido el apellido
     
if (document.formprin.apellidos.value.length==0){
       
alert("Tiene que escribir su apellido.")
       
document.formprin.apellidos.focus()
       return 
0;
    }
    
//valido el telefono
    
if (document.formprin.telefono.value.length==0){
       
alert("Tiene que escribir su telefono.")
       
document.formprin.telefono.focus()
       return 
0;
    }
    
//valido el email
    
if (document.formprin.email.value.length==0){
       
alert("Tiene que escribir su correo electronico.")
       
document.formprin.email.focus()
       return 
0;
    }
    

    
//el formulario se envia
    
alert("Muchas gracias por enviar el formulario");
    
document.formprin.submit();

</script>
</head>

<body bgcolor="black">
<p class="style1 style2">Formulario de registro:</p>
<form name="formprin" method="post" action="insertar.php">
    <p class="style1 style4">Nombres:</p>
  <p class="style1">
    <input name="nombre" type="text" id="nombre">
</p>
  <p class="style1 style4">Apellidos:</p>
  <p class="style1">
    <input name="apellidos" type="text" id="apellidos">
</p>
  <p class="style1 style4">Telefono:</p>
  <p class="style1">
    <input name="telefono" type="text" id="telefono">
</p>
  <p class="style1 style4">E-Mail:</p>
  <p>
    <span class="style1">
    <input name="email" type="text" id="email">
</span></p>
  <p>
    <input type="button" name="submit" value="Enviar Formulario" onclick="valida_envia()"> 
  </p>
</form>
</body>

</html> 
  #2 (permalink)  
Antiguo 19/09/2009, 16:00
 
Fecha de Ingreso: enero-2009
Mensajes: 34
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: validacion de campos en formulario

no le veo ningun problema a tu codigo amigo, quizas viendo tu codigo php pueda encontrar la falla
  #3 (permalink)  
Antiguo 19/09/2009, 20:16
 
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: validacion de campos en formulario

ps este es el codigo de insertar.php creo ke el problema es en el codigo del formulario ya ke cuando esta con la funcion validar_enviar, valida pero no envia los datos, cuando borro la funcion envia pero no valida xD

=(

Código PHP:
<?
    
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
    
if(isset($_POST['nombre']) && !empty($_POST['nombre']) &&
    isset(
$_POST['apellidos']) && !empty($_POST['apellidos']) &&
    isset (
$_POST['telefono']) && !empty($_POST['telefono']) &&
    isset (
$_POST['email']) && !empty($_POST['email'])) {

        
// Si entramos es que todo se ha realizado correctamente

        
$link mysql_connect("mi_host","lee","mi_pass");
        
mysql_select_db("mi_db",$link);

        
// Con esta sentencia SQL insertaremos los datos en la base de datos
        
mysql_query("INSERT INTO usuario (nombre,apellidos,telefono,email)
        VALUES ('{$_POST['nombre']}','{$_POST['apellidos']}','{$_POST['telefono']}','{$_POST['email']}')"
,$link);

        
// Ahora comprobaremos que todo ha ido correctamente
        
$my_error mysql_error($link);

        if(!empty(
$my_error)) {

            echo 
"Ha habido un error al insertar los valores.";

        } else {

            echo 
"Los datos han sido introducidos satisfactoriamente, puedes cerrar esta ventana.";

        }

    } else {

        echo 
"Error, no ha introducido todos los datos.";

    }

?>
  #4 (permalink)  
Antiguo 20/09/2009, 09:18
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: validacion de campos en formulario

cambia: <input type="button" name="submit" value="Enviar Formulario" onclick="valida_envia()">

por: <input type="button" name="submit" value="Enviar Formulario">

y esto: <form name="formprin" method="post" action="insertar.php">

por: form name="formprin" method="post" action="insertar.php" onsubmit="valida_envia();">

y dime si te funciona...
__________________
Hospedaje Web al mejor costo!
  #5 (permalink)  
Antiguo 20/09/2009, 17:08
 
Fecha de Ingreso: septiembre-2009
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: validacion de campos en formulario

pues lo puse asi y no funciona =S

Código PHP:

<html>
<
head>
<
title>Formulario de Registro</title>
<
style type="text/css">
<!--
.
style1 {color#FFFFFF}
.style2 {
    
font-familyVerdanaArialHelveticasans-serif;
    
font-size16px;
    
font-weightbold;
}
.
style4 {
    
font-familyVerdanaArialHelveticasans-serif;
    
font-weightbold;
}
-->
</
style>
<
script language="JavaScript">
function 
valida_envia(){
    
//valido el nombre
     
if (document.formprin.nombre.value.length==0){
       
alert("Tiene que escribir su nombre.")
       
document.formprin.nombre.focus()
       return 
0;
    }

    
//valido el apellido
     
if (document.formprin.apellidos.value.length==0){
       
alert("Tiene que escribir su apellido.")
       
document.formprin.apellidos.focus()
       return 
0;
    }
    
//valido el telefono
    
if (document.formprin.telefono.value.length==0){
       
alert("Tiene que escribir su telefono.")
       
document.formprin.telefono.focus()
       return 
0;
    }
    
//valido el email
    
if (document.formprin.email.value.length==0){
       
alert("Tiene que escribir su correo electronico.")
       
document.formprin.email.focus()
       return 
0;
    }
    

    
//el formulario se envia
    
alert("Muchas gracias por enviar el formulario");
    
document.formprin.submit();


</script>

</head>

<body bgcolor="black">
<p class="style1 style2">Formulario de registro:</p>
<p class="style1 style2">*Nombres:</p>
<form name="formprin" method="post" action="insertar.php" onsubmit="valida_envia()">
  <p class="style1">
    <input name="nombre" type="text" id="nombre">
</p>
  <p class="style1 style4">*Apellidos:</p>
  <p class="style1">
    <input name="apellidos" type="text" id="apellidos">
</p>
  <p class="style1 style4">Telefono:</p>
  <p class="style1">
    <input name="telefono" type="text" id="telefono">
</p>
  <p class="style1 style4">*E-Mail:</p>
  <p>
    <span class="style1">
    <input name="email" type="text" id="email">
</span></p>
  <p>
    <input type="button" name="submit" value="Enviar Formulario">
  </p>
  <p><span class="style1">*Campos Obligatorios </span></p>
</form>
</body>

</html> 
  #6 (permalink)  
Antiguo 20/09/2009, 17:10
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Respuesta: validacion de campos en formulario

cambia return 0; por return false; en todas tus acciones de javascript. El problema que veo es en javascript no tiene nada que ver con tus funciones de PHP.

Saludos
__________________
Hospedaje Web al mejor costo!
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 22:06.