contacto.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <?php
  2. include 'php/paises-estados.php';
  3. ?>
  4. <!DOCTYPE html>
  5. <html lang="en">
  6. <head>
  7. <meta charset="UTF-8">
  8. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  9. <!-- styles -->
  10. <link rel="stylesheet" href="css/style-main.css">
  11. <link rel="stylesheet" href="css/animations.css">
  12. <link rel="stylesheet" href="css/menu-main.css">
  13. <link rel="stylesheet" href="css/icons-platform.css">
  14. <link rel="stylesheet" href="css/style-contacto.css">
  15. <!-- sweet alert -->
  16. <script src="https://cdn.jsdelivr.net/npm/sweetalert2@9"></script>
  17. <!-- validations -->
  18. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
  19. <!-- bootstrap core css -->
  20. <link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
  21. <title>Plataforma Educativa</title>
  22. <!-- Para FTP -->
  23. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-46001212-3"></script>
  24. <!-- Recaptcha -->
  25. <script src="https://www.google.com/recaptcha/api.js?render=6LelvrMZAAAAAPGd9tApcZ4bmbe6RgIbVFqzzza6"></script>
  26. <script>
  27. window.dataLayer = window.dataLayer || [];
  28. function gtag(){dataLayer.push(arguments);}
  29. gtag('js', new Date());
  30. gtag('config', 'UA-46001212-3');
  31. grecaptcha.ready(function() {
  32. grecaptcha.execute('6LelvrMZAAAAAPGd9tApcZ4bmbe6RgIbVFqzzza6', {
  33. action: 'homepage'
  34. }).then(function(token) {
  35. var recaptchaResponse = document.getElementById('recaptchaResponse');
  36. recaptchaResponse.value = token;
  37. });
  38. });
  39. </script>
  40. </head>
  41. <body class="">
  42. <!-- Header -->
  43. <?php include('header.html'); ?>
  44. <!-- Fin Header -->
  45. <section class="bg-contacto margin">
  46. <div class="container pt-5 pb-5">
  47. <div class="row">
  48. <div class="col-md-6">
  49. <div class="container bg-white shadow">
  50. <form id="enviarFormulario" method="post" class="ml-5 mr-5 mt-5 mb-2">
  51. <input type="hidden" name="recaptcha_response" id="recaptchaResponse">
  52. <div class="form-row">
  53. <div class="form-group col-md-12">
  54. <select class="custom-select required-entry validate-no-html-tags form-control " name="necesito" id="necesito" required="true">
  55. <option value='' selected disabled style="color: #cccccc">Indícanos en que te podemos ayudar</option>
  56. <option value='Adquirir la Plataforma Educativa'>Adquirir la Plataforma Educativa</option>
  57. <option value='Una sesión 1-a-1 para entender las funciones de la Plataforma'>Una sesión 1-a-1 para entender las funciones de la Plataforma</option>
  58. <option value='Asesoría sobre la administración de la Plataforma'>Asesoría sobre la administración de la Plataforma</option>
  59. <option value='Soporte técnico para el uso de la Plataforma'>Soporte técnico para el uso de la Plataforma</option>
  60. <option value='Otros'>Otros</option>
  61. </select>
  62. </div>
  63. <div class="form-group col-md-6">
  64. <input placeholder="Nombre(s)" class="required-entry input-text validate-no-html-tags form-control " name="nombre" id="nombre" type="text" required="true" />
  65. </div>
  66. <div class="form-group col-md-6">
  67. <input placeholder="Apellidos" class="required-entry input-text validate-no-html-tags form-control " name="apellido" id="apellido" type="text" required="true" />
  68. </div>
  69. <div class="form-group col-md-12">
  70. <select class="custom-select required-entry validate-no-html-tags form-control " name="cargo" id="cargo" required="true">
  71. <option value='' selected disabled style="color: #cccccc">Indícanos el cargo</option>
  72. <option value='Dueño / Propietario'> Dueño / Propietario</option>
  73. <option value='Director General'> Director General</option>
  74. <option value='Gerente o Responsable de Sistemas'> Gerente o Responsable de Sistemas</option>
  75. <option value='Profesor'> Profesor</option>
  76. <option value='Padre de Familia'> Padre de Familia</option>
  77. <option value='Alumno'> Alumno</option>
  78. </select>
  79. </div>
  80. <div class="form-group col-md-12">
  81. <input placeholder="Institución educativa" class="required-entry input-text validate-no-html-tags form-control " name="empresa" id="empresa" type="text" required="true" />
  82. </div>
  83. <div class="form-group col-md-12">
  84. <input placeholder="Dirección" class="required-entry input-text validate-no-html-tags form-control " name="direccion" id="direccion" type="text" required="true" />
  85. </div>
  86. <div class="form-group col-md-6">
  87. <input placeholder="Código postal" class="required-entry input-text validate-no-html-tags form-control " name="cp" id="cp" type="text" required="true" maxlength="5" />
  88. </div>
  89. <div class="form-group col-md-6">
  90. <input placeholder="Ciudad" class="required-entry input-text validate-no-html-tags form-control " name="ciudad" id="ciudad" type="text" required="true" />
  91. </div>
  92. <div class="form-group col-md-6">
  93. <select class="custom-select required-entry validate-no-html-tags form-control " name="pais" id="pais" required="true">
  94. <option value='' selected disabled style="color: #cccccc">Selecciona un País</option>
  95. <option value='MEXICO'>MÉXICO</option>
  96. <?php
  97. foreach ($paises as $pais) {
  98. if ($pais!= 'MX') {
  99. echo "<option value='".$pais."'>".$pais."</option>";
  100. }
  101. }
  102. ?>
  103. </select>
  104. </div>
  105. <div class="form-group col-md-6">
  106. <input placeholder="Teléfono" class="required-entry input-text validate-no-html-tags form-control " name="telefono" id="telefono" type="text" required="true" maxlength="10" />
  107. </div>
  108. <div class="form-group col-md-12" id="divEstado">
  109. <select class="custom-select required-entry validate-no-html-tags form-control " name="estado" id="estado" required="true">
  110. <option value='' selected disabled style="color: #cccccc">Selecciona un estado</option>
  111. <?php
  112. foreach ($estados as $estado) {
  113. echo "<option value='".$estado."'>".$estado."</option>";
  114. }
  115. ?>
  116. </select>
  117. </div>
  118. <div class="form-group col-md-12">
  119. <input placeholder="Correo electrónico" class="required-entry input-text validate-no-html-tags form-control " name="email" id="email" type="email" required="true" />
  120. </div>
  121. <div class="form-group col-md-12">
  122. <textarea placeholder="Comentarios" class="required-entry validate-no-html-tags form-control " name="comentarios" id="comentarios" maxlength="80"></textarea>
  123. </div>
  124. <div class="form-group pl-4 col-md-12">
  125. <input type="checkbox" class="form-check-input validate-no-html-tags required-entry" name="aceptar_condiciones" id="aceptar_condiciones" type="checkbox" required="true" >
  126. <label for="aceptar_condiciones" >Acepto los <a class="no-underlinee" href="legal.html" target="_blank">términos y condiciones</a></label>
  127. </div>
  128. <div class="col-md-12">
  129. <button type="submit" id="enviar" name="enviar" class="mb-5 btn btn-primary btn-lg btn-block validation-passed">Enviar</button>
  130. </div>
  131. <div class="col-md-12 text-center mb-5" id="loading">
  132. <img src="images/contacto/loader.gif" width="41px">
  133. </div>
  134. </div>
  135. </form>
  136. </div>
  137. </div>
  138. <div class="col-md-6">
  139. </div>
  140. </div>
  141. </div>
  142. </section>
  143. <!-- Footer -->
  144. <?php include('footer.html'); ?>
  145. <!-- Fin Footer -->
  146. </body>
  147. <script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
  148. <script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
  149. <style>
  150. .error {
  151. font-size: 15px !important;
  152. font-weight: normal;
  153. font-family: Roboto, sans-serif;
  154. color: rgb(230, 59, 59);
  155. line-height: 1.2em;
  156. }
  157. .custom-select {
  158. color: #7c7c7c;
  159. }
  160. </style>
  161. <script>
  162. // script del formulario
  163. $('#loading').hide();
  164. $('#estado').prop('disabled', true);
  165. //Por si recargan la página
  166. var valor = $('#pais').val()
  167. if(valor == 'MEXICO'){
  168. $('#estado').prop('disabled', false);
  169. }else{
  170. $('#divEstado').hide();
  171. $('#estado').prop('disabled', true);
  172. }
  173. $('#pais').on('change', function() {
  174. var valor = $('#pais').val();
  175. if(valor == 'MEXICO'){
  176. $('#divEstado').show();
  177. $('#estado').prop('disabled', false);
  178. }else{
  179. $('#divEstado').hide();
  180. $('#estado').prop('disabled', true);
  181. }
  182. });
  183. $.validator.addMethod("numberAndLetters", function(value, element) {
  184. return this.optional(element) || /^[A-ZÑÁÉÍÓÚ 0-9 .,#-]+$/i.test(value);
  185. }, "Solo se permiten letras y números.");
  186. $("#enviarFormulario").validate({
  187. rules: {
  188. necesito: {
  189. required: true
  190. },
  191. nombre: {
  192. required: true,
  193. },
  194. apellidos: {
  195. required: true,
  196. },
  197. cargo: {
  198. required: true
  199. },
  200. empresa: {
  201. required: true
  202. },
  203. email: {
  204. required: true,
  205. email: true
  206. },
  207. telefono: {
  208. required: true,
  209. maxlength: 10
  210. },
  211. direccion: {
  212. required: true,
  213. },
  214. cp: {
  215. required: true,
  216. },
  217. ciudad: {
  218. required: true,
  219. },
  220. pais: {
  221. required: true,
  222. },
  223. comentarios: {
  224. required: false,
  225. numberAndLetters: true
  226. },
  227. aceptar_condiciones: {
  228. required: true
  229. }
  230. },
  231. messages: {
  232. necesito: {
  233. required: "Seleccione una opción de la lista"
  234. },
  235. nombre: {
  236. required: "El nombre es requerido."
  237. },
  238. apellido: {
  239. required: "Los apellidos son requeridos."
  240. },
  241. empresa: {
  242. required: "La empresa es requerida"
  243. },
  244. cargo: {
  245. required: "El cargo es requerido"
  246. },
  247. email: {
  248. required: "El correo electrónico es requerido.",
  249. email: "Ingrese un correo electrónico válido."
  250. },
  251. telefono: {
  252. required: "El teléfono es requerido."
  253. },
  254. direccion: {
  255. required: "La dirección es requerida."
  256. },
  257. cp: {
  258. required: "El código postal es requerido."
  259. },
  260. ciudad: {
  261. required: "La ciudad es requerida."
  262. },
  263. estado: {
  264. required: "El estado es requerido"
  265. },
  266. pais: {
  267. required: "El país es requerido."
  268. },
  269. comentarios: {
  270. required: "No se pueden ingresar carácteres alfanuméricos"
  271. },
  272. aceptar_condiciones: {
  273. required: "Se debe aceptar los términos y condiciones"
  274. }
  275. }
  276. });
  277. $('#enviarFormulario').submit(function(e) {
  278. e.preventDefault();
  279. var form = $("#enviarFormulario");
  280. if (form.valid()) {
  281. $('#enviar').hide();
  282. $('#loading').show();
  283. var url = "php/enviarCorreoContacto.php";
  284. $.ajax({
  285. type: "POST",
  286. url: url,
  287. data: $("#enviarFormulario").serialize(),
  288. success: function(data) {
  289. var response = JSON.parse(data);
  290. if (response.success) {
  291. Swal.fire(
  292. 'Datos enviados correctamente',
  293. response.mensaje,
  294. 'success'
  295. );
  296. } else {
  297. Swal.fire(
  298. 'Se ha producido un error',
  299. response.mensaje,
  300. 'error'
  301. );
  302. }
  303. $('#loading').hide();
  304. $('#enviar').show();
  305. $("#enviarFormulario").trigger("reset");
  306. },
  307. error: function(XMLHttpRequest, textStatus, errorThrown) {
  308. swal("Se ha producido un error", "No se han podido enviar los dato, Error: " + errorThrown + " ", "error");
  309. $('#loading').hide();
  310. $('#enviar').show();
  311. }
  312. });
  313. }
  314. });
  315. </script>
  316. </html>