Foros del Web » Programando para Internet » PHP »

Formulario y función mail

Estas en el tema de Formulario y función mail en el foro de PHP en Foros del Web. Hola a todos. A ver si me podeis orientar. Tengo un formulario para hacer pedidos que realiza la validación de los datos en el mismo ...
  #1 (permalink)  
Antiguo 02/12/2009, 12:33
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 1
Formulario y función mail

Hola a todos. A ver si me podeis orientar.

Tengo un formulario para hacer pedidos que realiza la validación de los datos en el mismo formulario.

Hago

if (!$_POST){

y entonces si es la 1ª vez me presenta el formulario vacío y sino, me presenta el formulario con los datos que se introdujeron. En cualquiera de los dos casos tengo un

<form name="pedido" method="POST" action="formulario.php">

es decir, que se llama a sí mismo y reliza la validación de los datos. Con otro if determino si son válidos o no. Si no son válidos saco el formulario mostrando los errores y si son válidos saco de nuevo el formulario con un mensaje y un boton para confirmar.

<input type="button" value="Confirmar" class="button"
onClick:"<?php enviarPedido($destino,$asunto,$mensaje);?>" />

enviarPedido es una función que utiliza mail:

function enviarPedido($destino,$asunto,$mensaje){
mail($destino,$asunto,$mensaje);
}

Es decir, que lo que pretendo es que el mail se envíe cuando el usuario clique en el botón, pero el problema es que el mail me lo envía cuando presenta el formulario y, sin embargo, cuando pico en el botón no hace nada.

Creo que ejecuta la llamada a enviarPedido cuando abre el formulario y no cuando pincho el botón, pero no sé porqué. Si alguien me pudiera orientar se lo agradecería.

Bueno, espero haberme explicado bien y no haberme extendido demasiado

Gracias de antemano.
  #2 (permalink)  
Antiguo 02/12/2009, 13:18
Avatar de JoshMex
Moderador Webhosting
 
Fecha de Ingreso: enero-2006
Mensajes: 4.057
Antigüedad: 18 años, 2 meses
Puntos: 166
Respuesta: Formulario y función mail

Muevo tu mensaje al foro de php, allí podrá ayudarme.
__________________
JoshMex
Desarrollador Plataforma Microsoft / Windows / ASP / ASP.NET / SQL Server
Es inútil hacer cualquier cosa a prueba de tontos, porque los tontos son muy ingeniosos
  #3 (permalink)  
Antiguo 02/12/2009, 18:54
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Formulario y función mail

Me parece que estamos confundiendo los lenguajes
los eventos son manejados con javascript, no por PHP!

Vos pones que en onClick te ejecute un script PHP y eso no va a pasar nunca! Por mas que tengas la funcion dentro del mismo archivo...

Vos lo que queres es validar los datos? Ok, pone un formulario en el que se llenen todos los datos, la accion a u script PHP que haga todas las validaciones que quieras, y despues mandas un mail con la funcion mail()

Despues si queres pones un mensaje tipo "mail enviado correctamente" o algo por el estilo
  #4 (permalink)  
Antiguo 02/12/2009, 19:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 270
Antigüedad: 15 años, 1 mes
Puntos: 9
Respuesta: Formulario y función mail

no entiendo bien la parte en la que dices validar los datos, acaso te refieres a ver si las cajas de texto estan vacias??? porque si es asi no vi nada de eso en tu codigo. Ademas como ya lo menciono jackson666 los eventos se manejan en Javascript. Ademas te aclaro que mail es tambien una funcion y devuelve true cuando el mensaje se envio correctamente y false en caso contrario
  #5 (permalink)  
Antiguo 07/12/2009, 02:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 7
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Formulario y función mail

Gracias por vuestras respuestas. Me han aclarado mi duda. Me tendré que replantear la forma de hacerlo. Mi idea era hacerlo todo con un sólo archivo php, pero creo que será más fácil hacer varios archivos. Voy a intentarlo.

Gracias.
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 06:21.