PHP - formulario de selección multiple con PHP

 
Vista:
sin imagen de perfil

formulario de selección multiple con PHP

Publicado por Felipe (2 intervenciones) el 14/12/2020 03:32:34
Hola gente! tengo un problema y no sé como solucionarlo, todo el formulario me funciona y recolecta la información como la necesito, pero tengo una que es con opción múltiple que no se recolecta, qué podría hacer en este caso? de antemano muchas gracias!

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<form class="form-wrap" id="main-contact-form" name="contact-form" method="post" action="php/envio.php">
    <h3 class="pb-20 text-center mb-20">Información y compra de Productos</h3>
    <input type="text" class="form-control" id="name" name="name" placeholder="Nombre" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Nombre'">
    <input type="text" class="form-control" id="subject" name="subject" placeholder="Teléfono " onfocus="this.placeholder = ''" onblur="this.placeholder = 'Teléfono'">
    <input type="email" class="form-control" id="email"  name="email" placeholder="Email" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Email'">
 
    <div class="form-select" id="servicio"  multiple name="servicio[]" >
        <select>
            <option data-display="">Tipo de Cliente</option>
            <option value="1">Personal Médico</option>
            <option value="2">Paciente (tengo formula médica)</option>
            <option value="3">Paciente (No tengo formula médica)</option>
 
        </select>
    </div>
 
    <textarea name="message" id="message" class="" rows="5" placeholder="Mensaje" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Mensaje'"></textarea>
    <div class="text-center confirm_btn_box">
        <button class="main_btn text-uppercase">Enviar</button>
    </div>
</form>

PHP:

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
<?php
 
header('Content-type: application/json');
 
$status = array(
 
    'type'=>'success',
 
    'message'=>'Thank you for contact us. As early as possible  we will contact you '
 
);
 
 
$name = @trim(stripslashes($_POST['name']));
 
$email = @trim(stripslashes($_POST['email']));
 
$subject = @trim(stripslashes($_POST['subject']));
 
$message = @trim(stripslashes($_POST['message']));
 
$service = @trim(stripslashes($_POST['servicio']));
 
 
$email_from = $email;
 
$email_to = 'myemail@gmail.com';//replace with your email
 
 
$body = 'Nombre: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Telefono: ' . $subject . "\n\n" . $service . "\n\n" . 'Mensaje: ' . $message;
 
 
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
 
 
echo json_encode($status);
 
die;
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 joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

formulario de selección multiple con PHP

Publicado por joel (1269 intervenciones) el 14/12/2020 10:28:38
Hola Felipe, ten en cuenta, que $_POST['servicio'] es un array... no deberías utilizar ni trim, ni stripslashes con un array!!!

Has comprobado que $_POST['servicio'] llegue correctamente?
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
sin imagen de perfil

formulario de selección multiple con PHP

Publicado por Felipe (2 intervenciones) el 14/12/2020 17:30:00
Hola, en efecto lo cambie pero sigue sin llegar :( la verdad no sé mucho de php, no se que puede estar quedando mal.

lo deje así:

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
73
74
<?php
 
 
 
header('Content-type: application/json');
 
 
 
$status = array(
 
 
 
    'type'=>'success',
 
 
 
    'message'=>'Thank you for contact us. As early as possible  we will contact you '
 
 
 
);
 
 
 
 
 
$name = @trim(stripslashes($_POST['name']));
 
 
 
$email = @trim(stripslashes($_POST['email']));
 
 
 
$subject = @trim(stripslashes($_POST['subject']));
 
 
 
$message = @trim(stripslashes($_POST['message']));
 
 
$service = $_POST['servicio'];
 
 
 
 
 
$email_from = $email;
 
 
 
$email_to = 'myemail@gmail.com';//replace with your email
 
 
 
 
 
$body = 'Nombre: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Telefono: ' . $subject . "\n\n" . $service . "\n\n" . 'Mensaje: ' . $message;
 
 
 
 
 
$success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
 
 
 
 
 
echo json_encode($status);
 
 
 
die;
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