Foros del Web » Programando para Internet » PHP »

Enviar datos de cotizacion por email

Estas en el tema de Enviar datos de cotizacion por email en el foro de PHP en Foros del Web. Hola amigos: Tengo varios formularios que guardan datos de una cotizacion. Todos los datos los paso con variables de sesion y al final tengo un ...
  #1 (permalink)  
Antiguo 07/07/2011, 14:58
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Exclamación Enviar datos de cotizacion por email

Hola amigos:

Tengo varios formularios que guardan datos de una cotizacion. Todos los datos los paso con variables de sesion y al final tengo un boton que se encarga de enviar los datos a un email. El problema que tengo es que algunos datos vienen en un array y no se como meterlos en el formato del email. Asi estan los datos:

Código PHP:
Ver original
  1. <tr>
  2.    <td>Alimentos</td>
  3.    <td><?php
  4.    if (isset($_SESSION['variables2'])) {
  5.    $array_a = $_SESSION['variables2']['alimentos'];
  6.    $array_b = $_SESSION['variables2']['ctdad_alimentos'];
  7. foreach($array_a as $v)
  8.   {
  9.     echo "<input name=\"alimentos[]\" value=\"$v\" readonly=\"readonly\">";  
  10.    echo "<br>";
  11.   }
  12.    }
  13.   else {
  14.        echo "No hay Datos";}
  15. ?> </td>
  16. <td>Cantidad:</td>
  17. <td>
  18.    <?php
  19.       if (isset($_SESSION['variables2'])) {
  20.  
  21.  foreach($array_b as $v)
  22.   {
  23.     echo "<input name=\"ctdad_alimentos[]\" value=\"$v\" readonly=\"readonly\">";  
  24.    echo "<br>";
  25.   }}
  26. ?></td>
  27.  </tr>

y este es el email:

Código PHP:
Ver original
  1. $nombre = $_POST['nombre'];
  2. $apellido = $_POST['apellido'];
  3. $email = $_POST['email'];
  4. $fecha_evento = $_POST['fecha_evento'];
  5. $alimentos = $_POST['alimentos'];
  6.  
  7. $header = 'From: ' . $email . " \r\n";
  8. $header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
  9. $header .= "Mime-Version: 1.0 \r\n";
  10. $header .= "Content-Type: text/plain";
  11.  
  12. $mensaje = "Este mensaje fue enviado por " . $nombre . ' '. $apellido . " \r\n";
  13. $mensaje .= "Su e-mail es: " . $email . " \r\n";
  14. $mensaje .= "Enviado el " . date('d/m/Y', time());
  15. $mensaje = "Este mensaje fue enviado por " . $nombre . " \r\n";
  16. $mensaje .= "Fecha del Evento: " . $fecha_evento . " \r\n";
  17. $mensaje .= "Alimentos: ". $alimentos . " \r\n";
  18. $para = '[email protected] ';
  19. $asunto = 'Contacto desde xxxxxxx';
  20.  
  21. mail($para, $asunto, utf8_decode($mensaje), $header);
  22.  
  23. echo 'En breve contestaremos su requerimiento';
  24. echo "<br>";
  25. echo "<br>";
  26. echo 'www.xxxxx.com';
  27. echo "<a href=\"index.php\">Regresar</a>";

Haciendolo de esta manera solo me llega el ultimo dato del array alimentos.

Como hago para que lleguen todos los datos???

Gracias
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 07/07/2011, 15:05
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 14 años, 1 mes
Puntos: 511
Respuesta: Enviar datos de cotizacion por email

Debes de recorrer el arrego.

Te dejo este ejemplo lo demas dependerá de ti

Código PHP:
Ver original
  1. $num=count($alimentos);
  2. for($i=0;$i<=num-1;$i++){
  3.       $mensaje .= "Alimentos: ". $alimentos[$i] . " \r\n";
  4. }

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 07/07/2011, 15:05
Avatar de JDEM  
Fecha de Ingreso: octubre-2008
Ubicación: www....
Mensajes: 154
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Enviar datos de cotizacion por email

Saludos,

La verdad no entiendo tu problema si ya tienes los datos haz un ciclo donde la asignes a mensaje los datos para que los imprima en el mail
__________________
Visitanos http://www.nestsystems.com.ve, mucho mas que solo paginas web.
  #4 (permalink)  
Antiguo 07/07/2011, 15:23
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Enviar datos de cotizacion por email

Muchas Gracias skiper0125 y JDEM no sabia como colocarlos dentro de mensaje .=.
__________________
Caminando con el corazón partío
  #5 (permalink)  
Antiguo 07/07/2011, 15:37
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Enviar datos de cotizacion por email

Una pregunta más. Estoy tratando de mostrar el alimento y la cantidad asi:

Código PHP:
Ver original
  1. if (isset($_SESSION['variables2'])) {
  2.    $array_a = $_SESSION['variables2']['alimentos'];
  3.    $array_b = $_SESSION['variables2']['ctdad_alimentos'];
  4.    $mensaje .= "Alimentos" . "--" . "Cantidad" . "\r\n"  ;  
  5. foreach($array_a as $v)
  6.   foreach($array_b as $c)
  7.  
  8.   {
  9.     $mensaje .= $v  . "--" . $c . "\r\n"  ;  
  10.   }
  11.    }
  12.   else {
  13.        echo "No hay Datos";}

lo hace pero me duplica la informacion asi:

Alimentos--Cantidad
Helados--100
Helados--100
Pizzas--100
Pizzas--100

como puedo ponerlo para que no se duplique. Que estoy haciendo mal en el código???
Gracias
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 07/07/2011, 16:10
Avatar de Markgus  
Fecha de Ingreso: junio-2010
Mensajes: 152
Antigüedad: 14 años, 5 meses
Puntos: 5
Respuesta: Enviar datos de cotizacion por email

mm intentaste poniendo las llaves así, un foreach dentro de otro

Código PHP:
foreach($array_a as $v){
 
 foreach(
$array_b as $c)
{
    
$mensaje .= $v  "--" $c "\r\n"  ;  
  }


  #7 (permalink)  
Antiguo 07/07/2011, 16:22
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Enviar datos de cotizacion por email

Markgus muchas gracias pero no me funciona. Me sigue dando los datos duplicados. Qué será??
__________________
Caminando con el corazón partío
  #8 (permalink)  
Antiguo 07/07/2011, 18:12
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Enviar datos de cotizacion por email

Probé ahora asi:

Código PHP:
Ver original
  1. if (isset($_SESSION['variables2'])) {
  2. $array_x = $_SESSION['variables2'];
  3.  
  4. $mensaje .= "Alimentos" . "--" . "Cantidad" . "\r\n"  ;  
  5. foreach($array_x as $v =>$k)
  6.    {
  7.     $v['alimentos'] . "--". $v['ctdad_alimentos'];
  8.    
  9.    }     
  10. }
  11.   else {
  12.        echo "No hay Datos";}

Y no me muestra nada.

Por favor indiquenme sus sugerencias. Gracias
__________________
Caminando con el corazón partío

Última edición por kimmy; 07/07/2011 a las 18:14 Razón: faltaron datos
  #9 (permalink)  
Antiguo 08/07/2011, 08:29
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 4 meses
Puntos: 15
Respuesta: Enviar datos de cotizacion por email

Hola amigos. Sigo sin poder resolver esto. Ahora coloqué el código asi:

Código PHP:
Ver original
  1. if (isset($_SESSION['variables2'])) {
  2.    $array_a = $_SESSION['variables2']['alimentos'];
  3.    $array_b = $_SESSION['variables2']['ctdad_alimentos'];
  4.    $mensaje .= "Alimentos" . "--" . "Cantidad" . "\r\n"  ;  
  5.  
  6. foreach($array_a as $v) {
  7.      $mensaje .= $v . "\r\n"  ;
  8.   foreach($array_b as $c)
  9.   {
  10.     $mensaje .= $c . "\r\n"  ;
  11.   }
  12. }
  13. }
  14.   else {
  15.        echo "No hay Datos";}

y no me repite el array de alimentos pero si el de cantidad. Esto es lo que arroja:

Alimentos--Cantidad
Helados
100
100
Pizzas
100
100

Como puedo hacer para que no repita las cantidades (100) sino que sea asi:

Alimentos--Cantidad
Helados
100
Pizzas
100

Por favor se los agradezco de verdad.
__________________
Caminando con el corazón partío

Etiquetas: email, formulario, variables
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 22:40.