Foros del Web » Programando para Internet » PHP »

ayuda urgente con formulario...

Estas en el tema de ayuda urgente con formulario... en el foro de PHP en Foros del Web. Hola!! No se si alguien me podra ayudar...os cuento un poquito cual es mi problema.Tengo un formulario,llamemosle:form1,el cual recoge los datos y debe insertarlos en ...
  #1 (permalink)  
Antiguo 25/04/2007, 10:56
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
ayuda urgente con formulario...

Hola!!
No se si alguien me podra ayudar...os cuento un poquito cual es mi problema.Tengo un formulario,llamemosle:form1,el cual recoge los datos y debe insertarlos en la base de datos.Desde form1 va al form2,q digamos q este formulario ultimo es el que te dice si los datos se han introducido correctamente.Me gustaria q a la hora de enviar los datos,me dijera en una ventanita de esas de tipo error si falta algun dato,o si los tipos de datos no son correctos...donde hago todo esto y como???donde hago la validacion de los datos??y necesito hacerlo en php,no en javascript.
Espero q alguien me pueda echar una mano..
Gracias.
  #2 (permalink)  
Antiguo 25/04/2007, 11:45
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Re: ayuda urgente con formulario...

por lo que veo estas iniciando en esto del PHP, y para ayudarte necesito mas datos y parte del código que usas.

te dejo esto mientras, pero a lo mejor no entiendes el funcionamiento o a lo mejor no es lo que necesitas ya que solo estoy adivinando como estaria tu código.

esto iria en tu segunda página antes de guardar a la base de datos.
Código PHP:
foreach($_POST as $nombre => $valor)
    {
        if(empty(
$_POST["$nombre"]))
            die(
"ERROR FALTAN DATOS");
    } 
suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #3 (permalink)  
Antiguo 25/04/2007, 11:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

Se nota mucho q soy estoy empezando,e!!!
Aqui te pogo el codigo mas o menos:::
form1:
<form action="principal.php" method="post" name="form1">
<h3 align="center"><label>Nivel1 &nbsp;</label>
<input name="nivel1" type="text">
</h3>
<h3 align="center"><label>Nivel2 &nbsp;</label>
<input name="nivel2" type="text">
</h3>
<center> <input name="Aceptar" type="submit" value="Aceptar"> </center>
</form>


Principal.php:
<?php
//Recoger datos del formulario
$nivel1=$HTTP_POST_VARS['nivel1'];
$nivel2=$HTTP_POST_VARS['nivel2'];

//Aqui es donde tengo q hacer todas las comprobaciones????

insertarDatos($nivel1,$nivel2) //Esta funcion se encarga de hacer la conexion a la bd e insertarlos...

?>

No se si con esto te bastara...q es lo q tengo q hacer ahora???me gustaria q me comprobara q todo el formulario este relleno,y q los tipos son los correctos para q a la hora de insertarlos en la bd no me de problemas.si hay algun tipo de error lo q quisiera es q me saliera una ventanita de esas de tipo erro y si todo va bien q una vez enviados los datos en principal.php me diga q los datos se han introducido correctamente....
Muchisimas gracias por tu ayuda.
  #4 (permalink)  
Antiguo 25/04/2007, 12:34
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Re: ayuda urgente con formulario...

aquí te dejo algo para que cheques.
esta es la página donde introduces los datos
Código PHP:
<?php
//esto es para posibles errores del error_reporting si es que esta activado
foreach($_POST as $nombre => $valor)
    {
        if(empty(
$_POST["$nombre"]))
            
$_POST["$nombre"]='';
    }
?>
<form action="principal.php" method="post" name="form1">
<h3 align="center"><label>Nivel1 &nbsp;</label>
<input name="nivel1" type="text" value="<?=$_POST['nivel1']?>">
</h3>
<h3 align="center"><label>Nivel2 &nbsp;</label>
<input name="nivel2" type="text" value="<?=$_POST['nivel2']?>">
</h3>
<center> <input name="Aceptar" type="submit" value="Aceptar"> </center>
</form>
y esta es principal.php
Código PHP:
<?php
//Recoger datos del formulario
// ya no se usa $HTTP_POST_VARS
$flag=true//bandera para desición
//creamos el formulario con campos ocultos para regresar
//cambia pagDeDondeVino.php por el nombre de la página donde introduces los datos
echo '<form action="pagDeDondeVino.php" method="post" name="form1">'
foreach($_POST as $nombre => $valor)
    {
        if(empty(
$_POST["$nombre"]) && $flag==true)
            
$flag==false;// si un campo esta vacio, cambiamos a falso
        
echo "<input name=\"$nombre\" type=\"hidden\" value=\"$valor\">"
    
}
echo 
'</form>';
if(!
$flag)//si $flag es falso
    
{
        echo 
"Error, campos imcompletos";
        echo 
'<br><br> <a href="javascript:void(0);" onclick="document.forms[\'form1\'].submit();">Volve Para Llenar Datos Faltantes</a>';
    }
else
//de lo contrario
    
{
        
insertarDatos($nivel1,$nivel2//Esta funcion se encarga de hacer la conexion a la bd e insertarlos...
    
}
?>
lee los comentarios que te deje dentro del código.

prueba y me dices, y si no te respondo pronto, no desesperes es que me estoy llendo a almorzar .

suerte y saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #5 (permalink)  
Antiguo 25/04/2007, 12:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

Igual es una pregunta un poco tonta,pero porq se hace esto????

<?php
//esto es para posibles errores del error_reporting si es que esta activado
foreach($_POST as $nombre => $valor)
{
if(empty($_POST["$nombre"]))
$_POST["$nombre"]='';
}
?>
<form action="principal.php" method="post" name="form1">
<h3 align="center"><label>Nivel1 &nbsp;</label>
<input name="nivel1" type="text" value="<?=$_POST['nivel1']?>">
</h3>
<h3 align="center"><label>Nivel2 &nbsp;</label>
<input name="nivel2" type="text" value="<?=$_POST['nivel2']?>">
</h3>
<center> <input name="Aceptar" type="submit" value="Aceptar"> </center>
</form>

No valdria solo hacerlo en el otro???y porq se pone: value="<?=$_POST['nivel1']?>????Perdon por mi ignorancia...
Cuando lo pruebe ya te comentare,ok?
  #6 (permalink)  
Antiguo 25/04/2007, 13:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

Lo he probado y si funciona,he tenido q poner algun ; pero poco mas...lo unico q no entiendo es lo q te he preguntado antes,si me lo podrias resolver.
Y otra cosa,ahora donde valido los tipos de datos??
Muchisimas gracias,me has ayudado mucho.
  #7 (permalink)  
Antiguo 25/04/2007, 13:06
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

Una ultima cosa...
Esto que has puesto es codigo javascript:::
echo '<br><br> <a href="javascript:void(0);" onclick="document.forms[\'form1\'].submit();">Volve Para Llenar Datos Faltantes</a>';


Es q solo quiero utiliar php,como se podria hacer asi?
Gracias eits.
  #8 (permalink)  
Antiguo 25/04/2007, 16:04
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 19 años, 5 meses
Puntos: 88
Re: ayuda urgente con formulario...

vamos paso por paso
Cita:
Iniciado por vanesuki_9 Ver Mensaje
Igual es una pregunta un poco tonta,pero porq se hace esto????
[PHP]
<?php
//esto es para posibles errores del error_reporting si es que esta activado
foreach($_POST as $nombre => $valor)
{
if(empty($_POST["$nombre"]))
$_POST["$nombre"]='';
}
?>

<form action="principal.php" method="post" name="form1">
<h3 align="center"><label>Nivel1 &nbsp;</label>
<input name="nivel1" type="text" value="<?=$_POST['nivel1']?>">
</h3>
<h3 align="center"><label>Nivel2 &nbsp;</label>
<input name="nivel2" type="text" value="<?=$_POST['nivel2']?>">
</h3>
<center> <input name="Aceptar" type="submit" value="Aceptar"> </center>
</form>

No valdria solo hacerlo en el otro???y porq se pone: value="<?=$_POST['nivel1']?>????Perdon por mi ignorancia...
Cuando lo pruebe ya te comentare,ok?
respuesta:
Código PHP:
<?php
//esto es para posibles errores del error_reporting()
// es decir, para evitar error de index invalido en el arreglo $_POST
foreach($_POST as $nombre => $valor)//obtiene el arreglo $_POST y recorre cada uno de sus valores
    
{//a cada registro del arreglo le toma el nombre y el valos
        
if(empty($_POST["$nombre"]))//si al accesar al registro, este no tiene valor
            
$_POST["$nombre"]='';//le asigna un campo vacio para evitar errores
    
}
?>

<form action="principal.php" method="post" name="form1">
<h3 align="center"><label>Nivel1 &nbsp;</label>
<input name="nivel1" type="text" value="<?=$_POST['nivel1']?>">
</h3>
<h3 align="center"><label>Nivel2 &nbsp;</label>
<input name="nivel2" type="text" value="<?=$_POST['nivel2']?>">
</h3>
<center> <input name="Aceptar" type="submit" value="Aceptar"> </center>
</form>
$_POST['nivel1'] se coloca porque es con ese nombre que va a regresar el valor
por si no es el campo que quedo vacio y para que lo vuelva a tener el valor
que le colocaron antes, que dificil fue esto .
Cita:
Iniciado por vanesuki_9 Ver Mensaje
ahora donde valido los tipos de datos??
Muchisimas gracias,me has ayudado mucho.
Cita:
Iniciado por vanesuki_9 Ver Mensaje
Una ultima cosa...
Esto que has puesto es codigo javascript:::
echo '<br><br> <a href="javascript:void(0);" onclick="document.forms[\'form1\'].submit();">Volve Para Llenar Datos Faltantes</a>';
Es q solo quiero utiliar php,como se podria hacer asi?
Gracias eits.
respuesta 2 y 3
Código PHP:
<?php
//Recoger datos del formulario
// ya no se usa $HTTP_POST_VARS
$flag=true//bandera para desición
//creamos el formulario con campos ocultos para regresar
echo '<form action="pagDeDondeVino.php" method="post" name="form1">';
######  Esto valida que los campos no esten vacios
foreach($_POST as $nombre => $valor)
    {
        if(empty(
$_POST["$nombre"]) && $flag==true)
            
$flag==false;// si un campo esta vacio, cambiamos a falso
        
echo "<input name=\"$nombre\" type=\"hidden\" value=\"$valor\">";
    }
#####
//aqui puedes validar lo demas, es decir, que los tipos
// de datos sean correctos, usando tambien el $flag
if(!$flag)//si $flag es falso
    
{
        echo 
"Error, campos imcompletos";
//si era javascript y ya lo cambie por un boton submit
        
echo '<br><br><input type="submit" value="Volver Para Llenar Datos Faltantes">';
    }
else
//de lo contrario
    
{
        
insertarDatos($nivel1,$nivel2//Esta funcion se encarga de hacer la conexion a la bd e insertarlos...
    
}
echo 
'</form>';
?>
prueba con este otro y me dices.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.

Última edición por eits; 25/04/2007 a las 16:09
  #9 (permalink)  
Antiguo 26/04/2007, 10:47
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

muchas gracias,ya me funciona...
  #10 (permalink)  
Antiguo 26/04/2007, 11:48
 
Fecha de Ingreso: febrero-2007
Mensajes: 40
Antigüedad: 17 años, 9 meses
Puntos: 0
Re: ayuda urgente con formulario...

gracias por todo,eits,pero ahora me ha surgido otro problema,y es que cuando uno de los campos es cero lo toma como un campo vacio,eso creo q es por la funcion empty,pero no se como solucionarlo,q otra funcion podria utilizar?
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 13:11.