PHP - Formulario con dos acciones si checkbox esta marcado

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 18 puestos en PHP (en relación al último mes)
Gráfica de PHP

Formulario con dos acciones si checkbox esta marcado

Publicado por Yandri (3 intervenciones) el 05/09/2018 16:53:46
Hola comunidad, estoy haciendo un formulario que envia un mensaje de comentarios a mi correo electronico y tengo una opcion de suscripcion a correos futuros.

Si la opcion esta desmarcada solo se enviara el correo, pero si la opcion esta marcada necesito que se envie el correo y se guarde los datos seleccionados en la base de datos.

Me pueden ayudar por que soy nuevo y no se como hacer que se envie los datos a la db si esta marcado el checkbox.

ESTE ES EL FORMULARIO DE CONTACTO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form id="home-form">
  <div class="form-group">
   <label for="needs">Por favor escriba su solicitud...</label>
   <textarea id="message" name="message" class="form-control form-move" rows="6" placeholder="Aqui su solicitud..." required></textarea>
  </div>
  <div class="form-group row">
   <div class="col-md-6">
    <label for="firstName">Nombres</label>
    <input id="firstName" type="text" class="form-control form-move" name="firstName" placeholder="Nombres">
   </div>
   <div class="col-md-6">
    <label for="lastName">Apellidos</label>
    <input id="lastName" type="text" class="form-control form-move" name="lastName" placeholder="Apellidos">
   </div>
  </div>
  <div class="form-group">
   <label for="email">Correo elctronico</label>
   <input id="email" type="email" class="form-control form-move" name="email" placeholder="Email">
  </div>
  <p class='text-center'>Cualquier solicitud sera atendida rapidamente.</p>
  <div class="form-group text-center">
   <button type="submit" class="btn btn-default">Enviar</button>
  </div>
</form>
ESTE ES EL MODAL QUE TRABAJA JUNTO AL FORMULARIO DE CONTACTO
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<div class="modal-header">
      <button type="button" class="close" data-dismiss="modal">
       <span aria-hidden="true">&times;</span>
       <span class="sr-only">Cerrar</span>
      </button>
      <p class="text-center">
      <img src="imagenes/logo2.png" alt="LCP" class="concierge" width="250" />
      </p>
     </div>
 
 
     <div class="modal-body">
      <div id="form-messages"></div>
      <form id="popup-form" role="form" method="post" action="intake-form.php">
       <!-- This fields are taken from intake form but hidden -->
       <input type="hidden" name="csrfToken" value="7fd9e958b605d7119def582c5be6d03f"/>
       <input id="firstNameHidden" type="hidden" name="nombre">
       <input id="lastNameHidden" type="hidden" name="apellido">
       <input type="hidden" id="messageHidden" name="mensaje">
       <input type="hidden" id="emailHidden" name="email">
       <div class="form-group">
        <div id="fundedContainer">
 	 <strong>Tipo de Ayuda:</strong>
	 <label>
	  <input id="unfunded" type="checkbox" name="trabajo" value="servicio-tecnico">
	  <p>Servicio t&eacutecnico de una instalaci&oacuten hecha por LCP.</p>
	 </label>
	 <label>
	  <input id="funded" type="checkbox" name="trabajo" value="cotizacion">
	  <p>Solicitar cotizaci&oacuten de cualquiera de nuestros productos o servicio t&eacutecnico de una instalaci&oacuten no realizada por LCP.</p>
	 </label>
	 <div class="levelFunding">
	  <label>
	  <strong>Tipo de solicitud:</strong>
	  <input type="radio" name="solicitud" value="cctv" id="cctv-i"><label for="cctv-i">Instalaci&oacuten de CCTv.</label>
	  <input type="radio" name="solicitud" value="alarma" id="alarma-i"><label for="alarma-i">Instalaci&oacuten de Alarmas.</label>
	  <input type="radio" name="solicitud" value="incendio" id="incendio-i"><label for="incendio-i">Instalaci&oacuten de Sistema de Detecci&oacuten de Incendios.</label>
	  <input type="radio" name="solicitud" value="domotica" id="domotica-i"><label for="domotica-i">Instalaci&oacuten de Dom&oacutetica.</label>
	  <input type="radio" name="solicitud" value="redes" id="redes-i"><label for="redes-i">Instalaci&oacuten de Redes.</label>
	  <input type="radio" name="solicitud" value="cerco" id="cerco-i"><label for="cerco-i">Instalaci&oacuten de Cerco El&eacutectrico.</label>
	  <input type="radio" name="solicitud" value="acceso" id="acceso-i"><label for="acceso-i">Instalaci&oacuten de Control de Acceso.</label>
	  <input type="radio" name="solicitud" value="tecnico" id="s-tecnico"><label for="s-tecnico">Servicio T&eacutecnico de una Instalaci&oacuten no realizada por LCP.</label>
	 </div>
	 <p><a tabindex="0" role="button" data-toggle="popover" data-trigger="focus" title="Trabajando con LCP."
	 data-content="
	 1.      Complete su solicitud para cualquier trabajo de LCP.<br><br>
	 2.      Su solicitud ser&aacute procesada y agregada a nuestra lista de contactos. <br><br>
	 3.      Un experto de LCP se comunicar&aacute con usted.<br><br>
	 4.      Juntos decidiremos si LCP es su mejor opci&oacuten.<br><br>
	 4.      Uno de nuestros expertos le visitar&aacute para coger datos t&eacutecnicos.<br><br>
	 5.      Se le enviar&aacute una proforma con los costos de nuestros equipos y trabajo.<br><br>
	 6.      Una vez que reciba la proforma decidir&aacute si el costo es el adecuado con su presupuesto.<br><br>
	 7.      Se comunicar&aacute con nosotros para pactar una fecha de inicio y horarios en los que se pueden realizar los trabajos.<br><br>
	 8.      Una vez aceptado el convenio nuestros t&eacutecnicos lo visitar&aacuten para realizar los trabajos.<br><br>">
	  <small>&#8594; &nbsp; Pasos para trabajar con LCP.</small></a></p>
	</div>
	<hr>
	 <div class="otherOptions">
 	 <strong>Suscripci&oacuten:</strong>
	 <label><input id="suscribe" type="checkbox" name="suscripcion" value="si"> Desea suscribirse a nuestra lista de correo, para recibir notificaciones de promociones y nuevos productos?</label>
	</div>
       </div>
       <!--
       <hr>
       -->
       <div class="form-group row">
        <div class="col-md-6">
	 <label for="phone"><strong>Tel&eacutefono:</strong></label>
	 <input type="text" class="form-control" id="phone" name="phone">
	</div>
	<div class="col-md-6">
	 <label><strong>Email</strong></label>
	 <input id="emailReal" name="email" disabled style="width: 100%">
	</div>
       </div>
       <hr>
       <div id="hearFromContainer" class="form-group row">
        <div class="col-md-12">
	 <label for="hearFrom"><strong>Como supiste de nosotros?</strong></label>
	 <select name="hearFrom">
	  <option selected disabled>Elige una opci&oacuten</option>
	  <option value="LinkedIN">LinkedIN</option>
	  <option value="Facebook">Facebook</option>
	  <option value="YouTube">YouTube</option>
	  <option value="Twitter">Twitter</option>
	  <option value="Buscador">Buscador Web</option>
	  <option value="Otros">Otros</option>
	 </select>
	</div>
       </div>
       <p class="text-center">
       <button name="btn" type="submit" class="btn btn-primary">Enviar</button>
       </p>
      </form>
 
     </div>
    </div>
   </div>
</div>

ESTE ES EL PHP DE ENVIO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
   if(isset($_POST["btn"])){
    $aquien="admin@google.com";
    $tema="Correo de la Página";
    $mensaje="Datos de Solicitudes:\r\n";
    $mensaje.="Nombre:".$_POST["nombre"]."\r\n";
    $mensaje.="Apellido:".$_POST["apellido"]."\r\n";
    $mensaje.="Telefono:".$_POST["phone"]."\r\n";
    $mensaje.="Email:".$_POST["email"]."\r\n";
    $mensaje.="Tipo de Trabajo:".$_POST["trabajo"]."\r\n";
    $mensaje.="Tipo de Cotización:".$_POST["solicitud"]."\r\n";
    $mensaje.="Comentario:".$_POST["mensaje"]."\r\n";
    $mensaje.="Conocido:".$_POST["hearFrom"]."\r\n";
    mail($aquien,$tema,$mensaje);
}
?>

TODO FUNCIONA CORRECTAMENTE PERO CUANDO SE MARQUE ESTA OPCION
1
<label><input id="suscribe" type="checkbox" name="suscripcion" value="si"> Desea suscribirse a nuestra lista de correo, para recibir notificaciones de promociones y nuevos productos?</label>

NECESITO QUE SE GUARDEN LOS CAMPOS SELECCIONADOS.
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario con dos acciones si checkbox esta marcado

Publicado por xve (6935 intervenciones) el 06/09/2018 08:56:48
Hola Yandri, según entiendo, tendrás que hacer un condicional para saber si se ha marcado o no el checkbox y guardar los datos... algo así:

1
2
3
4
if($_POST["suscripcion"])
{
    guardo en base de datos
}
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

Formulario con dos acciones si checkbox esta marcado

Publicado por Yandri (2 intervenciones) el 11/09/2018 01:12:19
no ingresa los datos, necesito saber que esta mal:
Aqui esta el codigo php de envio y escribir en la base de datos.

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
<?php
 if(isset($_POST["btn"])){
    $aquien="admin@lcp.com.ec";
    $tema="Correo de la Página";
    $mensaje="Datos de Solicitudes:\r\n";
    $mensaje.="Nombre:".$_POST["nombre"]."\r\n";
    $mensaje.="Apellido:".$_POST["apellido"]."\r\n";
    $mensaje.="Telefono:".$_POST["phone"]."\r\n";
    $mensaje.="Email:".$_POST["email"]."\r\n";
    $mensaje.="Tipo de Trabajo:".$_POST["trabajo"]."\r\n";
    $mensaje.="Tipo de Cotización:".$_POST["solicitud"]."\r\n";
    $mensaje.="Comentario:".$_POST["mensaje"]."\r\n";
    $mensaje.="Conocido:".$_POST["hearFrom"]."\r\n";
    mail($aquien,$tema,$mensaje);
 }
   if($_POST["suscripcion"])
    $servername = "localhost";
    $database = "suscripcion";
    $username = "root";
    $password = "*******";
    // crear conexion
    $connect = mysqli_connect($servername, $username, $password, $database);
    // chequear conexion
    if (!$connect) {
        die("Conexión rechazada: " . mysqli_connect_error());
    }
    echo "Conexión exitosa";
    //recuperar las variables
    $nombre=$_POST['nombre'];
    $apellido=$_POST['apellido'];
    $email=$_POST['email'];
    $telefono=$_POST['phone'];
    //hacemos la sentencia de sql
    $sql="INSERT INTO suscripcion(nombre, apellido, email, telefono) VALUES('$nombre', '$apellido', '$email', '$telefono')";
    //verificamos la ejecucion
    if(!$mysqli_query($connect, $sql))
    {
    echo"Datos Agregados";
    }
    else{
    echo"Error:" . $sql . "<br>" .
    mysqli_error($connect);
    }
    mysqli_close($connect);
?>
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario con dos acciones si checkbox esta marcado

Publicado por xve (6935 intervenciones) el 11/09/2018 08:57:32
Hola Yandri, que mensaje te muestra?
Datos Agregados o el error?

Creo que esta linea, la tienes mal...
1
if(!$mysqli_query($connect, $sql))
La tienes negada (!), por lo que si va mal, te dira "Datos Agregados"... quitale la admiración.


Lo que tienes para enviar el mail(), te faltaria las cabeceras del correo... https://secure.php.net/manual/es/function.mail.php
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

Formulario con dos acciones si checkbox esta marcado

Publicado por Yandri (2 intervenciones) el 11/09/2018 15:42:48
Hola XVE, gracias por tu comentario, todo esta correcto solo he estado equivocado con la siguiente linea:

1
if($_POST["suscripcion"])

debia haber puesto lo siguiente:

1
2
3
if(isset($_POST["suscripcion"]) && $_POST['suscripcion'] == '1'){
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario con dos acciones si checkbox esta marcado

Publicado por xve (6935 intervenciones) el 11/09/2018 17:56:17
Gracias por compartirlo Yandri!!!
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