kirya_shkolnik

Form.js

Jul 20th, 2021 (edited)
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $('form.contact-form .form-submit').on('click', function(event){
  2.     console.log('Modal sent ot Admin');
  3.     event.preventDefault();
  4.     event.stopImmediatePropagation();
  5.     if (!event.isDefaultPrevented()) {
  6.         event.returnValue = false;
  7.     }
  8.     let form = $(this).closest('form.contact-form');
  9.  
  10.     form.find('.modal__reject').fadeOut();
  11.     form.find('.modal__resolve').fadeOut();
  12.     form.find('.error').removeClass('.error');
  13.     var formError = false;
  14.  
  15.     form.find('input').each(function (){
  16.         if($(this).val() == ''){
  17.             $(this).addClass('error');
  18.             $(this).select();
  19.             formError = true;
  20.             return false;
  21.         }
  22.     });
  23.     if (!formError) {
  24.  
  25.         let name = form.find('input[name="name"]').val();
  26.         let phone = form.find('input[name="phone"').val();
  27.  
  28.  
  29.         let formData = new FormData();
  30.         formData.append('name', name);
  31.         formData.append('phone', phone);
  32.         $.ajax({
  33.             url: '/message.php',
  34.             type: 'POST',
  35.             dataType: 'json',
  36.             cache: false,
  37.             contentType: false,
  38.             processData: false,
  39.             data: formData,
  40.             beforeSend: function () {
  41.                 form.siblings('.formLoader').fadeIn();
  42.                 let formheight = form.height();
  43.                 form.height(formheight);
  44.                 form.find('.modal__contact-form').fadeOut();
  45.             },
  46.             error: function (er) {
  47.                 form.siblings('.formLoader').fadeOut();
  48.                 form.find('.modal__resolve').fadeOut();
  49.                 form.find('.modal__reject').fadeIn();
  50.                 form.find('.form-submit-contact').text("Не отправлено. Попробовать еще раз?");
  51.                 form.find('div.data-error').fadeIn();
  52.                 console.log(er);
  53.             },
  54.             success: function(){
  55.                 form.find('.form-submit-contact').text("Успешно!").removeClass('.form-submit');
  56.                 form.find('div.data-error').fadeOut();
  57.                 setTimeout(function (){
  58.                     form.siblings('.formLoader').fadeOut();
  59.                     form.find('.modal__reject').fadeOut();
  60.                     form.find('.modal__resolve').fadeIn();
  61.                     form.find('input[name="name"]').val('');
  62.                     form.find('input[name="phone"]').val('');
  63.  
  64.                 },1500);
  65.             },
  66.             complete: function () {
  67.  
  68.             }
  69.         });
  70.  
  71.     }
  72.     // return false;
  73. });
  74. $('form.service-form .form-submit').on('click', function(event){
  75.  
  76.     console.log('Form sent to Admin');
  77.     event.preventDefault();
  78.     event.stopImmediatePropagation();
  79.     if (!event.isDefaultPrevented()) {
  80.         event.returnValue = false;
  81.     }
  82.     let form = $(this).closest('form.service-form');
  83.  
  84.     form.find('.modal__reject').fadeOut();
  85.     form.find('.modal__resolve').fadeOut();
  86.     form.find('.error').removeClass('.error');
  87.  
  88.     var formError = false;
  89.  
  90.     form.find('input').each(function (){
  91.         if($(this).val() == ''  && $(this).attr('id') != "file"){
  92.             $(this).addClass('error');
  93.             $(this).select();
  94.             formError = true;
  95.             return false;
  96.         }
  97.     });
  98.     if (!formError) {
  99.  
  100.         let name = form.find('input[name="name"]').val();
  101.         let phone = form.find('input[name="phone"').val();
  102.         let square = form.find('input[name="square"]').val();
  103.         let address = form.find('input[name="address"').val();
  104.         let task = $('textarea[name="description"]').val();
  105.  
  106.         let formData = new FormData();
  107.         formData.append('service', $('.service__name').text());
  108.         formData.append('name', name);
  109.         formData.append('phone', phone);
  110.         formData.append('square', square);
  111.         formData.append('address', address);
  112.         formData.append('task', task);
  113.         $.each($('#file')[0].files, function(i, file) {
  114.             formData.append('file', file);
  115.         });
  116.         $.ajax({
  117.             url: '/project-request.php',
  118.             type: 'POST',
  119.             dataType: 'json',
  120.             cache: false,
  121.             contentType: false,
  122.             processData: false,
  123.             data: formData,
  124.             beforeSend: function () {
  125.                 form.siblings('.formLoader').fadeIn();
  126.                 let formheight = form.height();
  127.                 form.height(formheight);
  128.                 form.find('.modal__service-form').fadeOut();
  129.                 form.find('.modal__reject').fadeOut();
  130.                 form.find('.modal__resolve').fadeOut();
  131.             },
  132.             error: function (er) {
  133.                 form.siblings('.formLoader').fadeOut();
  134.                 form.find('.modal__resolve').fadeOut();
  135.                 form.find('.modal__reject').fadeIn();
  136.                 form.find('div.data-error').fadeIn();
  137.                 console.log(er);
  138.             },
  139.             success: function(){
  140.                 form.find('div.data-error').fadeOut();
  141.                 setTimeout(function (){
  142.                     form.siblings('.formLoader').fadeOut();
  143.                     form.find('.modal__reject').fadeOut();
  144.                     form.find('.modal__resolve').fadeIn();
  145.                     form.find('input').val('');
  146.  
  147.                 },1500);
  148.             },
  149.             complete: function () {
  150.  
  151.             }
  152.         });
  153.  
  154.     }
  155.     // return false;
  156. });
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173. /////////////////////////////////////////PHP////////////////////////////////////////
  174.  
  175.  
  176.  
  177. <?php
  178. use PHPMailer\PHPMailer\PHPMailer;
  179. use PHPMailer\PHPMailer\Exception;
  180.  
  181. //Load Composer's autoloader
  182. require 'vendor/autoload.php';
  183.  
  184. //Instantiation and passing `true` enables exceptions
  185. $mail = new PHPMailer(true);
  186.  
  187.  
  188.  
  189.  
  190. if(isset($_SERVER["HTTP_CF_CONNECTING_IP"])) { // http ip user
  191.  
  192.     $user_ip = $_SERVER["HTTP_CF_CONNECTING_IP"];
  193.  
  194. } else {
  195.  
  196.     $user_ip = $_SERVER["REMOTE_ADDR"];
  197.  
  198. }
  199.  
  200. $ch = curl_init('http://ip-api.com/json/' . $user_ip . '?lang=ru'); // get place
  201. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  202. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  203. curl_setopt($ch, CURLOPT_HEADER, false);
  204. $res = curl_exec($ch);
  205. curl_close($ch);
  206.  
  207. $res = json_decode($res, true);
  208.  
  209. $country = $res['country'];
  210. $city = $res['city'];
  211. $place = $res['country'] . ', ' . $res['city']; // string user place
  212.  
  213.  
  214.  
  215.  
  216.  
  217. $arr = array(
  218.     'IP :' => $user_ip,
  219.     'Откуда: ' => $place,
  220.     'Имя: ' => $_POST['name'],
  221.     'Телефон: ' => $_POST['phone']
  222. );
  223. $tgtxt = 'Новая заявка! %0A';
  224. $mailtxt = '<h1>Новая заявка!</h1>';
  225. foreach ($arr as $key => $value)
  226. {
  227.     $tgtxt .= "<b>" . $key . "</b> " . $value . "%0A";
  228.     $mailtxt .= "<p> <b>" . $key . "</b> " . $value . "</p>";
  229.  
  230. };
  231. //echo $mailtxt;
  232. // tg code
  233. $token = "1411837202:AAHfOxhPCbA-1At9Lng8R7fH5T0Ld3zYWmw";
  234. $chat_id = "-1001478897928";
  235.  
  236. $url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$tgtxt}";
  237. $ch  = curl_init();
  238. curl_setopt( $ch, CURLOPT_URL, $url );
  239. curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  240. curl_setopt( $ch, CURLOPT_POST, 1 );
  241. curl_setopt( $ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208' );
  242. $curl_scraped_page = curl_exec( $ch );
  243.  
  244. curl_close( $ch );
  245. // tg code end
  246.  
  247.  
  248.  
  249. // mail code
  250. try
  251. {
  252.         //Server settings
  253.         //Recipients
  254.         $mail->setFrom('green-mail@greenstone-team.ru', 'Green-mail');
  255.         $mail->addAddress('kirya.shkolnik@theweather.space'); //Name is optional
  256.  
  257.  
  258.         //Content
  259.         $mail->isHTML(true); //Set email format to HTML
  260.         $mail->Subject = 'Заявка с сайта Green Stone';
  261.         $mail->Body = $mailtxt;
  262.         $mail->AltBody = $mailtxt;
  263.  
  264.         $mail->send();
  265.         echo 'true';
  266. }
  267. catch(Exception $e)
  268. {
  269.         echo "false";
  270. }
  271. // mail code end
  272.  
  273.  
  274.  
  275. echo "true";
  276.  
Add Comment
Please, Sign In to add comment