PHP - PASAR DATOS A MYSQL

   
Vista:

PASAR DATOS A MYSQL

Publicado por hector (2 intervenciones) el 14/11/2008 23:21:11
Saludos gentil comunidad

Bien mi caso es el siguiente, lo q sucede es que cuando valido un campo en el formulario, el boton "enviar" me manda a una pagina o zona en blanco del script del php donde esta la conexion a la BD y su respectiva insercion en la tabla, digamos q de tres campos q tengo en el form q son: nombre,telefono,correo, digamos no lleno correo, me sale un alert "ingrese su correo" le doy aceptar y me manda a una zona en blanco de mi enlace de destino llamado registro.php, tengo q hacer click en el boton retroceder del navegador para q me muestre el formulario inicial q estaba llenando, este es el script

<?php
// Insertar en la Base de Datos
$conexion = mysql_connect ("localhost", "serglo")
or die ("No se puede conectar con el servidor");
mysql_select_db ("test")
or die ("No se puede seleccionar la base de datos");

$fecha = date ("Y-m-d"); // Fecha actual
$instruccion = "insert into age (nom, fono, email) values ('$nom', '$fono', '$email')";
$consulta = mysql_query ($instruccion, $conexion)
or die ("Fallo en la consulta");
mysql_close ($conexion);

// Mostrar datos introducidos
print ("<H1>DATOS ALMACENADOS</H1> ");
print ("<H2>Resultado de la inserción de sus datos</H2> ");
print ("Los datos han sido almacenados correctamente:");
print ("<UL>");
print ("<LI>Nombre: " . $nom);
print ("<LI>Telefono: " . $fono);
print ("<LI>E-Mail: " . $email);
print ("</UL>");

print ("<BR>");
print ("[ <A HREF='flisto.php'>grabacion Ok</A> ]");
?>

<html>

<head>
<meta http-equiv="Content-Language" content="es">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Nombre</title>
<script language="JavaScript">

function Validar(formulario){

if (formulario.nom.value == "")
{ alert("Por favor ingrese su nombre"); return; }

if (formulario.fono.value == "")
{ alert("Por favor ingrese su telefono"); return; }

if (formulario.email.value == "")
{ alert("Por favor ingrese su E-mail"); return; }

formulario.submit();
}
</script>
</head>
<body>
<form name=formulario method="post" action="flisto.php">
<table border="0" width="59%" id="table3" cellspacing="1">
<tr>
<td width="118"><font face="Verdana" size="2">Nombre:</font></td>
<td><input type="text" name="nom" size="20"></td>
</tr>
<tr>
<td width="118"><font face="Verdana" size="2">Telefono:</font></td>
<td><input type="text" name="fono" size="20"></td>
</tr>
<tr>
<td width="118"><font face="Verdana" size="2">Correo:</font></td>
<td><input type="text" name="email" size="20"></td>
</tr>
</table>
<p><input type="submit" value="Enviar" name="insertar" onClick=Validar(this.form)>
<input type="reset" value="Restablecer" name="Resetear"></p>
</form>

* cuando lleno todo el formulario si me graba en la tabla, todo hasta ahi bien, pero cuando dejo un campo en blanco se activa la validacion me manda a una pagina en blanco y tengo q regresar para llenar el campo faltante, como hago para que cuando me olvide de llenar un campo solo me mande al cuadro de texto faltante y no a otra pagina
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

RE:PASAR DATOS A MYSQL

Publicado por Pineapple (183 intervenciones) el 15/11/2008 01:58:24
Hola amigo, haber lo que debes hacer es quitar los returns y el submit metelo a los if, te recomiendo utlizar else if y al ultimo pones el submit cuando ya se hayan cumplido todos, espero haberme explicado.

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

RE:PASAR DATOS A MYSQL

Publicado por Hector (2 intervenciones) el 17/11/2008 21:23:17
Pineapple, gracias por tu respuesta, toy en deuda.....
Segui tu consejo de usar if anidados, te comento que mejoro al respecto de como estaba, lo unico que me evade es una validacion anidada. este es el script

<script language="JavaScript">

function Validar(form){

if (formulario.nom.value == "")
{
alert("!Falto ingresar su nombre");
formulario.nom.focus();
}
else if (formulario.nom.value.length < 4)
{
alert("Escriba por lo menos 4 caracteres en el campo "Nombre".");
formulario.nom.focus();
var checkOK = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚ" + "abcdefghijklmnñopqrstuvwxyzáéíóú ";
var checkStr = formulario.nom.value;
var allValid = true;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
if (!allValid)
{
alert("Escriba sólo letras en el campo "Nombre".");
formulario.nom.focus();
}
}
else if (formulario.fono.value == "")
{
alert("!Falto ingresar su telefono"); formulario.fono.focus();
var checkOK = "0123456789";
var checkStr = formulario.fono.value;
var allValid = true;
var decPoints = 0;
var allNum = "";
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
allNum += ch;
}
if (!allValid)
{
alert("Escriba sólo dígitos en el campo "Telefono".");
formulario.fono.focus();
}
}
else if (formulario.email.value == "")
{
alert("!Falto ingresar su E-mail"); formulario.email.focus();
}
else
{
alert("!Verificacion Ok, haga click en el boton Enviar");
}
}
</script>

Esto sucede en el campo del numero de telefono se supone que al poner letras me deberia activar la validacion de poner solo texto pero igual me los recibe, como que si estubiera evadiendo la condicion, bueno pero de todos modos GRACIAS!!!!!!!!!!!!!
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

RE:PASAR DATOS A MYSQL

Publicado por Pineapple (183 intervenciones) el 18/11/2008 10:04:42
Saca de ahi esa funcion y haz otra aparte que se mande llamar cada vez que escriban algo en ese campo una funcion asi:

function verif(n){
permitidos=/[^0-9.]/;
if(permitidos.test(n.value)){
alert("Solo se puedeingresar numeros");
n.value="";
n.focus();
}
}

Y tu campo lo pones asi:

<input name="nn" type="text" onKeyup="verif(this)" onblur="verif(this)">

Espero te ayude esto.

Saludos!!

*Funciones sacadas de Foros del Web
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