Ver Mensaje Individual
  #9 (permalink)  
Antiguo 29/09/2004, 21:52
Martine
 
Fecha de Ingreso: septiembre-2004
Mensajes: 362
Antigüedad: 19 años, 8 meses
Puntos: 1
Ya debe Funcionar...Campos Requeridos

Bueno... creo que encontré solución con otro código pero quiero dar las gracias a Niltza a Freedatos a José Molina y a todas las personas que siempre están sacando de su tiempo para colaborar.

A continuación voy a tratar de resumir cual era mi problema inicial y cual la solución... De todas formas si alguien encuentra que se pueden hacer mejoras sobre todo en cuanto a la seguridad pues Bienvenidos los comentarios:

Problema: "Lograr que los campos requeridos en un formulario sean validados antes de enviarse a una base de Datos". El formulario pide Fecha (Date) - Edad(Age) - Nombre (Name) - Nationality (Nacionalidad)... y los campos obligatorios son los 3 primeros.

Herramientas:
1. Formulario en html (METHOD="POST")
2. Archivo php3 para recibir los datos y enviarlos a la Base de Datos
3. Base de Datos en MySQL y administrada por phpMyAdmin

Ok... estos son los 2 archivos que me permiten recibir los datos de forma correcta... los voy a escribir para que los interesados los puedan copiar y personalizar.

form.html:

<HTML>
<HEAD><SCRIPT>

//Pon en la variable obligatorios el name de todos los campos que deben rellenar

obligatorio=["date","name","age"];

//Pon en la variable textoObligatorio el texto que quieres que aparezca en el alert

textoObligatorio=["Date","Name","Age"];

function comprobar(este){
for(a=0;a<obligatorio.length;a++){

if(este.elements[obligatorio[a]].value==""){

alert("Por favor, llena el campo "+textoObligatorio[a]);
este.elements[obligatorio[a]].focus();
return false;


}

}

return true;
}

</SCRIPT>

</HEAD>
<BODY>
<FORM NAME="Prueba" METHOD="POST" ACTION="add_reg5.php3"
ONSUBMIT="return comprobar(this)">

<PRE>
<FONT COLOR="#336699">FIELDS MARKED WITH * ARE REQUIRED.
<FONT COLOR="#990000">CAMPOS MARCADOS CON * SON REQUERDIOS.</FONT></FONT>

</PRE>
<TABLE WIDTH="700" CELLPADDING="3" CELLSPACING="10" ALIGN="CENTER"
STYLE="border-top: 2px #1E5A77 solid; border-right: 2px #1E5A77 solid; border-bottom: 2px #1E5A77 solid; border-left: 2px #1E5A77 solid">

<TR>
<TD ALIGN="RIGHT" WIDTH="300"><BR><FONT COLOR="#336699">* Date -
</FONT><FONT COLOR="#990000">Fecha </FONT><FONT
COLOR="#990000">(MM/DD/AAAA):</FONT></TD>
<TD ALIGN="LEFT" WIDTH="400"><BR><INPUT TYPE="TEXT" NAME="date"
SIZE="8" MAXLENGTH="10"> </TD>
</TR>
<TR>
<TD ALIGN="RIGHT"><FONT COLOR="#336699">* Your Name </FONT><FONT
COLOR="#336699"> </FONT><FONT COLOR="#990000">Nombre y Apellido:</FONT></TD>
<TD><INPUT TYPE="TEXT" NAME="name" SIZE="35" MAXLENGTH="30"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT"><FONT COLOR="#336699"> *Age - <FONT
COLOR="#990000">Edad:</FONT></FONT></TD>
<TD> <INPUT TYPE="TEXT" NAME="age" SIZE="1" MAXLENGTH="2"></TD>
</TR>
<TR>
<TD ALIGN="RIGHT"><FONT COLOR="#336699">Nationality -
<FONT COLOR="#990000">Nacionalidad:</FONT></FONT></TD>
<TD> <INPUT TYPE="TEXT" NAME="nationality" SIZE="35"
MAXLENGTH="20"></TD>
</TR>
<TR>
<TD VALIGN="TOP" ALIGN="RIGHT"><FONT COLOR="#336699">When done,
Please:</FONT><BR><BR></TD>
<TD><INPUT ID="enviar" TYPE="submit" NAME="enviar"
VALUE="Submit - Enviar"> <FONT COLOR="#336699">or </FONT><INPUT TYPE="reset"
VALUE="Clear - Borrar"><BR><BR></TD>
</TR>
</TABLE> </FORM>
</BODY>
</HTML>


add_reg5.php3 Observe que este es el dato que va en la etiqueta FORM ACTION=" add_reg5.php3", Pero Ud le puede dar otro nombre con .php3



<HTML>
<HEAD> </HEAD>

<BODY><?PHP // process form
$link = mysql_connect("localhost", "nombre_de_usuario","password"); mysql_select_db("nombre_de_la_base_de_datos",$link );
$sql = "INSERT INTO nombre_de_la_tabla (Date, Name, Age, Nationality) ".
"VALUES ('$date', '$name', '$age', '$nationality')";
$result = mysql_query($sql);
echo "¡Gracias! Hemos recibido sus datos.\n";


?>
</BODY>
</HTML>

Estos últimos datos hacen referencia a la base de datos en MySQL.
Localhost es donde normalmente está conectada la base... sino, pregúntale a tu proveedor de hosting.

Saludos!

Martin