PHP - Pasar valor de un formulario

 
Vista:

Pasar valor de un formulario

Publicado por Llaverin (4 intervenciones) el 26/08/2008 16:11:21
Hola a tod@s:
Soy novata en php. He buscado y probado con mogollon de instrucciones y no me ha dado resultado. Os comento que es lo que quiero realizar.

Tengo un formulario dentro de un frame, en el cual, el cliente tiene que rellenar una serie de datos, al dar al boton Aceptar, le mando mediante el evento onclick a una pagina php para que me valide que ha introducido los datos y no ha dejado ninguno en blanco y es ahi donde no se como hacerlo, pongo lo siguiente:
<?php
function Validar()
{
if (window.parent.Cuerpo.frmFormulario.DiaIni.Value == "")
{
echo("window.alert('Debe rellenar el día inicial.')");
}
}
?>

Y no me hace nada, es como sino lo leyese. No se como hacerlo, he probado a poner is_null, empty y nada de nada.

Si alguien me puede echar una mano se lo agradezco.

Muchas gracias de antemano.

Saludos
Llaverin
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 valor de un formulario

Publicado por juan (54 intervenciones) el 26/08/2008 16:41:00
hola, puedes lanzar el script en el formulario con el evento onSubmit asi:

onsubmit="return validara()"

en tu funcion valida construida en javascript poner un return, si se cumplen las condiciones return true y sino return false, de esta manera cuando se envie el formulario si la respuesta es true se puede seguir, sino el no te deja pasar del formulario hasta que sea un true

Debes anteponer el return en el onsubmit de lo contrario no funciona.

espero te sea de ayuda.
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 valor de un formulario

Publicado por Llaverin (4 intervenciones) el 26/08/2008 16:53:33
Hola juan:
Muchas gracias por la respuesta, ahora lo pruebo. pero el tema es que lo tengo que validar en otro pagina que es solo php, porque de esa manera, creo, no pierdo la información que haya escrito el cliente.

Si tienes otra opción me lo comentas, aunque no dudes que voy a probar lo que me acabas de decir.

Muchas gracias
Saludos
Llaverin
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

Un ejemplo pequeño

Publicado por juan (54 intervenciones) el 26/08/2008 17:40:10
Un ejemplo pequeño de lo que necesitas hacer:


function valida_envia()
{
//se asignan los datos introducidos en los campos del formulario
cedula = document.getElementById("cedula");
nombre1 = document.getElementById("nombre1");
nombre2 = document.getElementById("nombre2");

//se verifica que el campo cedula tenga datos y que estos tengan el formato adecuado
if (valida_campo_vacio(cedula)==0){
alert("Digite la cédula");
return false;
}
if (valida_numero(cedula)==0){
alert("La cedula solo puede tener numeros");
return false;
}

//se verifica que el campo nombre1 tenga datos y que estos tengan el formato adecuado
if (valida_campo_vacio(nombre1)==0 ){
alert("Digite el primer nombre");
return false;
}
if(valida_letras(nombre1)==0){
alert("El nombre solo puede tener letras");
return false;
}

//se verifica que el campo nombre2 tenga datos y que estos tengan el formato adecuado
if (valida_campo_vacio(nombre2)==0 ){
alert("Digite el segundo nombre");
return false;
}
if(valida_letras(nombre2)==0){
alert("El nombre solo puede tener letras");
return false;
}

return true;
}

El ejemplo anterior valida un formulario pequeño, de tres campos, primero valida que el campo tenga datos y luego que tenga el formato correcto, en cada caso no vas a perder la info que el cliente haya digitado porque solo se valida campo a campo y sale un mensaje.

Estas son las funciones que necesitas para validar los campos:

//funcion que valida si un campo esta vacio
function valida_campo_vacio(campo)
{
if(campo.value.length == 0)
return 0;
else
return 1;
}

//funcion que valida si un campo esta compuesto solo por numeros
function valida_numero(campo)
{
var numero = campo.value;

if (isNaN(numero)){
return 0;
}
else{
return 1;
}
}

//funcion que valida si un campo esta compuesto solo por letras
function valida_letras(campo)
{
var letras = campo.value;
var re = /^[a-zA-Z]+$/;

if (re.test(letras)){
return 1;
}
else{
return 0;
}
}

Y este es el ejemplo de formulario:
<form class="formul" enctype="multipart/form-data" method="post" action="adicionando_empleado.php" name="fvalida" onsubmit="return valida_envia()">
<table border="0">
<tr>
<td><label>Identificación : </label><br><br></td>
<td><input type="text" size=30 id="cedula" name="cedula_empleado" id="cedula"><br><br></td>
</tr>
<tr>
<td><label>Primer nombre : </label><br><br></td>
<td><input type="text" size=30 name="nombre_empleado1" id="nombre1"><br><br></td>
</tr>
<tr>
<td><label>Segundo nombre : </label><br><br></td>
<td><input type="text" size=30 name="nombre_empleado2" id="nombre2"><br><br></td>
</tr>
<input type="submit" name="submit" value="Agregar">
<input type="reset" name="reset" value="Borrar">
<br><br>
</form>

Cuando la funcion valida_envie retorne true los datos son enviados a adicionando_empleado, si retorna false te deja en el formulario y no pierdes lo que lleves digitado porque no estas recargando la pagina, solo estas verificando un campo.

espero sea de ayuda.
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:Un ejemplo pequeño

Publicado por Llaverin (4 intervenciones) el 27/08/2008 11:55:52
Muchas gracias a los dos.
Pero, Juan, he probado lo que me has dicho y me salta el siguiente error:
"Se esperaba un objeto" Y acto seguido se va a la pagina que le habia dicho que se fuese en el caso de que estuviera todo correcto.

El codigo que he puesto es el siguiente, lo he puesto despues del </head>
<?php
function valida_envia()
{
$DiaIni = document.getElementById("DIni");
if (valida_campo_vacio(DiaIni)==0)
{
alert("Rellene el día inicial");
return false;
}
if (valida_numero(DiaIni)==0)
{
alert("El día inicial debe de ser numerica");
return false;
}
return true;
}

function valida_campo_vacio($campo)
{
if($campo.value.length == 0)
{
return 0;
}
else
{
return 1;
}
}

function valida_numero($campo)
{
$numero = $campo.value;

if (isNaN($numero))
{
return 0;
}
else
{
return 1;
}
}

?>

Y despues:
<form name="frmFormulario" method="post" action="Continua.php" onsubmit="return valida_envia()" enctype="multipart/form-data">

Todo esto lo he puesto en la misma pagina.

No se donde tengo el error.

Muchas gracias
Llaverin
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:Un ejemplo pequeño

Publicado por Diego Romero (1450 intervenciones) el 27/08/2008 13:44:19
Me parece que no me has leído.

Todo lo que está entre los tags <?php y ?> debe ser código PHP y lo que has posteado acá es una mezcla de PHP con JavaScript. ¿Entiendes cuando digo que PHP se ejecuta en el servidor y JavaScript en el cliente?. El navegador no sabe absolútamente nada PHP.

A propósito, ¿tienes instalado PHP en el servidor?.
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:Un ejemplo pequeño

Publicado por Llaverin (4 intervenciones) el 27/08/2008 15:24:58
Hola Diego:
He probado lo que me has dicho tú y Juan, y no me da resultado. Me salta un error diciendo:
"Se esperaba un objeto", y me indica que el error se encuentra en
<form name="frmFormulario" enctype="multipart/form-data" method="get" action="Validaciones.php" onsubmit="return valida_envia()">

En Validaciones tengo lo que me habeis dicho y si lo pongo todo en la pagina frmFormulario el error me da en :
function valida_envia()

No se como hacer esto.

Por cierto, si tengo instalado el PHP en el servidor.

Muchas gracias.

Saludos
Llaverin
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 valor de un formulario

Publicado por Diego Romero (1450 intervenciones) el 26/08/2008 18:36:15
Estás confundida. El código que has puesto es JavaScript, no PHP. JavaScript se ejecuta en el cliente (el navegador) y PHP en el servidor. JavaScript no sabe nada de PHP ni PHP de JavaScript.

Mientras que el código que has puesto serviría para (pre)validar la entrada de datos en el formulario web del lado del cliente, el equivalente en PHP del lado del servidor iría algo así:

<?php
$dialin = @$_POST["dialin"];
if (empty($dialin)) { echo "Dialin está vacío"; }
?>

Eso fue un ejemplo MUY simplificado, pero funciona. Siempre y cuando la propiedad "name" del tag input en el form HTML sea "dialin".

¿Preguntas?
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