Formulario, problema con envío de checkbox por mail

los check box son los siguientes

<form action="cont.php" method="post">
<div align="center">
<input type="checkbox" name="numero[]" value="chocolate"/>
<input type="checkbox" name="numero[]" value="vainilla"/>
<input id="submit" type="submit" name="submit" value="Enviar" />
</form>

y en php para que me mande el mail lo puse de la siguiente manera

<?php
foreach($_POST['numero'] as $sabor){
echo $sabor."<br>";}
$a_quien="[email protected]";
$asunto="Asunto del Mail";
$mensaje="le gusta ".$sabor;
mail ( $a_quien , $asunto , $mensaje);
?>

el problema es que si en el check box tildo chocolate y vainilla, solo me envía este ultimo y no ambos.

Muchas gracias!

1 Respuesta

Respuesta
1

El problema es con la forma en la cual recoges los valores. Si te das cuenta, cada vez que haces el foreach solo haces un echo d kla variable $sabor, lo cual no ayuda en nada para saber que sabores se han seleccionado (mostrará los dos valores pero cuando deseas enviarlos por correo solo tendrás el último valor rescatado en el bucle.

Para que puedas trabajar correctamente he creado una variable adicional llamada sabores, la cual guardará todos los sabores seleccionados

$sabores = "";
 foreach($_POST['numero'] as $sabor){
 $sabores .= $sabor."<br>";
 }

Ya solo queda utilizar esta nueva variable para enviarla en el correo.

$mensaje="le gusta ".$sabores;

Lo que dejaría el script de esta forma

<?php 
$sabores = "";
 foreach($_POST['numero'] as $sabor){
 $sabores .= $sabor."<br>";
 }
 $a_quien="[email protected]";
 $asunto="Asunto del Mail";
 $mensaje="le gusta ".$sabores;
 echo $mensaje;
 mail ( $a_quien , $asunto , $mensaje);
?>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas