PHP - Enviar formulario PHP a correo con listas y grupo de opciones

   
Vista:

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por Rafa rspaisano@gmail.com (9 intervenciones) el 07/08/2016 21:57:44
Buenas a todos,

He estado buscando por internet alguna guía donde explique como hacer para crear un formulario con PHP y enviarlo por mail.

Tengo uno hecho y funciona bien, el tema que no logro solucionar ni he encontrado es el de añadir a dicho formulario un grupo de opciones o una lista menú donde el usuario seleccione una de las opciones y que al enviar el formulario se envíe también la selección.

En los campos de texto y en las áreas de texto no hay problema, todos me llegan al mail pero con las opciones no me sale nada.

Alguien puede ayudarme con este tema? Si es necesario copiaré el código que tengo escrito del formulario.

Saludos y gracias de antemano,
Rafa
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
Imágen de perfil de kip

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por kip (564 intervenciones) el 07/08/2016 22:14:04
Hola, es necesario que coloques tu código para que puedan ayudarte a localizar el error o guiarte a dar con la solución de lo que necesitas.

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

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por Rafa rspaisano@gmail.com (9 intervenciones) el 08/08/2016 22:07:29
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
if (!isset($_POST['correo'])) {
?>
	<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
		<label>
			<input type="text" name="nombre" placeholder="Nombre y apellidos" class="campo_formulario"><br>
		</label>
								<label>
			<input type="text" name="empresa" placeholder="Empresa/Institución" class="campo_formulario"><br>
		</label>
		<label>
			<input type="text" name="telefono" placeholder="Teléfono de contacto" class="campo_formulario"><br>
		</label>
		<label>
			<input type="text" name="correo" placeholder="Correo electrónico" class="campo_formulario"><br>
		</label>
							<label>
								<input type="text" name="poblacion" placeholder="Población/Ciudad" class="campo_formulario"><br>
							</label>
 
								<label>
			<div class="subtitulo_form">Información del aparcamiento</div>
			<input type="radio" name="aparcamiento" value="1" id="aparcamiento_0">
			Doméstico unifamiliar</label>
			<br>
			<label>
			<input type="radio" name="aparcamiento" value="2" id="aparcamiento_1">
			Doméstico comunitario</label>
			<br>
			<label>
			<input type="radio" name="aparcamiento" value="3" id="aparcamiento_2">
			Parking público</label>
			<br>
			<label>
			<input type="radio" name="aparcamiento" value="4" id="aparcamiento_3">
			Administración publica</label>
			<br>
			<label>
			<input type="radio" name="aparcamiento" value="5" id="aparcamiento_4">
			Flota
			</label>
			<br>
		<label>
 
		</label>
		<label>
			<textarea name="mensaje" placeholder="Motivo de contacto" class="textarea_form"></textarea><br>
		</label>
		<input type="reset" value="Borrar" />
		<input type="submit" value="Enviar" />
		</form>
	<?php
	}else{
		$mensaje="Mensaje del formulario de contacto de www.dominio.com";
		$mensaje.= "\nNombre: ". $_POST['nombre'];
		$mensaje.= "\nEmpresa: ".$_POST['empresa'];
		$mensaje.= "\nTelefono: ". $_POST['telefono'];
		$mensaje.= "\nCorreo: ". $_POST['correo'];
		$mensaje.= "\nPoblacion: ". $_POST['poblacion'];
		$mensaje.= "\nAparcamiento: ". $_POST['aparcamiento'];
		$mensaje.= "\nMensaje: \n".$_POST['mensaje'];
		$destino= "correo@electronico.com";
		$remitente = $_POST['correo'];
		$asunto = "Mensaje enviado por: ".$_POST['nombre'];
		mail($destino,$asunto,$mensaje,"FROM: $remitente");
	?>
		<p><strong>Mensaje enviado.</strong></p>
	<?php
	}
	?>
 
</div>

En este caso tengo 5 input tipo radio, los paso por $_POST como las demas variables pero en el correo no me llega ninguna información de ese campo.
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
Imágen de perfil de kip

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por kip (564 intervenciones) el 09/08/2016 14:17:20
Lo veo bien, deberia llegarte el valor de cualquiera que selecciones (1,2,3,4,5) que son los valores que asignaste por cada caso, podrias decirnos que te llega exactamente? o si te llega vacio podrias hacer un var_dump() antes de enviar para que verificas que se este enviando por POST:

1
var_dump($_POST);

Nos cuentas como te fue.
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

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por Rafa rspaisano@gmail.com (9 intervenciones) el 09/08/2016 21:48:24
Nombre: Rafa
Empresa: Empresa
Telefono: 999999999
Correo: correo@mail.com
Poblacion: España
Aparcamiento: 3
Mensaje:
Comentarios

Ahora me llega bien, sin problemas. Y en el campo de Aparcamiento, en lugar de que llegue el valor 1, 2, 3, 4 o 5 al correo, que me salga el texto que yo quiera según el valor del formulario, tengo que poner un "if" a la variable $_POST["aparcamiento"]?

Por ejemplo:

.
.
.
$mensaje.= "\nCorreo: ". $_POST['correo'];
$mensaje.= "\nPoblacion: ". $_POST['poblacion'];
if ($mensaje.= "\nAparcamiento: ". $_POST['aparcamiento'] == 1){
echo 'Comunitario'};
$mensaje.= "\nMensaje: \n".$_POST['mensaje'];
$destino= "correo@electronico.com";
$remitente = $_POST['correo'];
.
.
.

O cual sería la forma correcta de hacer eso?

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
Imágen de perfil de kip

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por kip (564 intervenciones) el 09/08/2016 22:06:12
Esta correcto, podrias hacerlo de esa forma, aunque seria mejor que directamente en cada radio coloques el atributo value con el texto que deseas, seria una opcion.

De todas formas, podrias hacer la evaluacion con un switch para cada caso, asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
    }else{
        switch ($_POST['aparcamiento']) {
            case '1':
                $aparcamiento = 'Domestico unifamiliar';
                break;
            case '2':
                $aparcamiento = 'Domestico comunitario';
                break;
                // etc.........
        }
        $mensaje="Mensaje del formulario de contacto de www.dominio.com";
        $mensaje.= "\nNombre: ". $_POST['nombre'];
        $mensaje.= "\nEmpresa: ".$_POST['empresa'];
        $mensaje.= "\nTelefono: ". $_POST['telefono'];
        $mensaje.= "\nCorreo: ". $_POST['correo'];
        $mensaje.= "\nPoblacion: ". $_POST['poblacion'];
        $mensaje.= "\nAparcamiento: ". $aparcamiento;
        $mensaje.= "\nMensaje: \n".$_POST['mensaje'];
        $destino= "correo@electronico.com";
        $remitente = $_POST['correo'];
        $asunto = "Mensaje enviado por: ".$_POST['nombre'];
        mail($destino,$asunto,$mensaje,"FROM: $remitente");
    ?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar formulario PHP a correo con listas y grupo de opciones

Publicado por Rafa (9 intervenciones) el 10/08/2016 22:14:48
Kip, el consejo de hacer el switch ha estado estupendo, ahora me funciona todo a la perfección!

Le he tenido que añadir un } antes del cierre de ?> final porque no me enviaba el formulario y me daba error sintáctico.

Muchísimas gracias por tu ayuda!

Saludos,
Rafa
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