Ответы пользователя по тегу JavaScript
  • Как установить отслеживание кликов по ссылке на номер телефона для Яндекс Метрики?

    Есть более простое решение я думаю))

    <a href="tel:+7(999)999-99--99 onclick="ym('id цели','reachGoal','идентификатор цели: ');" class="phone-link"> +7 (999) 999-99-99 </a>


    Проверить сработало или нет можно через debug ?_ym_debug=1
    Ответ написан
    Комментировать
  • Как привязать один ключ reCAPTCHA от Гугл к нескольким формам?

    @MurinSergey Автор вопроса
    Может кому то понадобиться мне помогло вот это решение в общем файлe js в моем случае это main.js

    Прописываем 1 вот этот скрип для подключения капчи:
    <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script>

    Прописываем 2:
    var onloadCallback = function () {
      let mysitekey = ' ваш ключ';
    
      grecaptcha.render('recaptcha1', {
        'sitekey': 'mysitekey ',  // Ваш ключ
        'callback': onRecaptchaSuccess, // Функция что будет передавать response в консоль при отмеченной капчи
        'expired-callback': onRecaptchaExpired, // Функция что будет передавать срок действия капчи в консоль
        'timeout': 120000 // Время срока действия капчи
      });
    
      grecaptcha.render('recaptcha2', {
        'sitekey': 'mysitekey ',
        'callback': onRecaptchaSuccess2,
        'expired-callback': onRecaptchaExpired,
        'timeout': 120000
      });
    };
    
    var isRecaptchaChecked = false; // Флаг для отслеживания отмеченности reCAPTCHA
    
    function onRecaptchaSuccess(response) {
      // Действия при успешной проверке reCAPTCHA
      console.log('reCAPTCHA успешно пройдена1.');
      console.log('Ответ:', response);
      isRecaptchaChecked = true; // Устанавливаем флаг в true
    }
    
    function onRecaptchaSuccess2(response) {
      // Действия при успешной проверке reCAPTCHA
      console.log('reCAPTCHA успешно пройдена2.');
      console.log('Ответ:', response);
      isRecaptchaChecked = true; // Устанавливаем флаг в true
    }
    
    function onRecaptchaExpired() {
      // Действия при истечении срока действия отклика на reCAPTCHA
      console.log('Срок действия reCAPTCHA истек.');
      isRecaptchaChecked = false; // Устанавливаем флаг в false
    }

    В итоге у вас должно получиться 2 капчи, которые не зависят друг от друга даже при одинаковом ключе. recaptcha1 и recaptcha2 это id
    Ответ написан
    Комментировать
  • Не могу найти ошибку почему не приходят письма?

    @MurinSergey Автор вопроса
    что может быть не так
    $(document).ready(function () {
    
    	const namet = document.getElementById('feedback_form_name3');
    	const phonet = document.getElementById('feedback_form_phone3');
    	const feedbackformurl3 = document.getElementById('feedback_form_url3');
    
    	$(".submitButton").click(function () {
    		const nameValuet = namet.value;
    		const phoneValuet = phonet.value;
    		const feedbackformurl5Value = feedbackformurl3.value;
    		// Получение значения checkbox
    		var isChecked = $("#checkboxAgree").is(":checked");
    		// Проверка значения checkbox
    		if (!isChecked) {
    			// Вывод сообщения об ошибке
    			alert("Пожалуйста, примите политику конфиденциальности.");
    			return; // Прерываем выполнение функции
    		}
    
    		if (nameValuet == "" || phoneValuet == "") {
    
    			$("#feedback_form_danger3").css("display", "");
    
    		}
    		else {
    
    			$("#feedback_form_danger3").css("display", "none");
    			$("#feedback_form_success3").css("display", "");
    
    			$.ajax({
    				type: "POST",
    				url: "/local/components/main/send.form/templates/send.form-newdesignPartnersTop/ajax.php",
    				caches: false,
    				data: { NAME: nameValuet, PHONE: phoneValuet, },
    				dataType: "html",
    				beforeSend: function () {
    					$(".submitButton").prop("disabled", true);
    				},
    				success: function (data) {
    					if (!data)
    						alert("Были ошибки, письмо не отправленно!");
    					else
    						$("#form__top").trigger("reset");
    					$(".submitButton").prop("disabled", false);
    				},
    			});
    		}
    
    	});
    });

    <?php
    use PHPMailer\PHPMailer\PHPMailer;
    // Файлы phpmailer
    require 'phpmailer/PHPMailer.php';
    require 'phpmailer/SMTP.php';
    require 'phpmailer/Exception.php';
    
    # проверка, что ошибки нет
    if (!error_get_last()) {
    
        // Переменные, которые отправляет пользователь
        $name = $_POST['name'] ;
        $phone = $_POST['phone'];
    
        // Формирование самого письма
        $title = "Заголовок письма";
        $body = "
        <h2>Новое письмо</h2>
        <b>Имя:</b> $name<br>
        <b>Телефон:</b> $phone<br><br>
        ";
        
        // Настройки PHPMailer
        $mail = new PHPMailer\PHPMailer\PHPMailer();
        
        $mail->isSMTP();   
        $mail->CharSet = "UTF-8";
        $mail->SMTPAuth   = true;
        //$mail->SMTPDebug = 2;
        $mail->Debugoutput = function($str, $level) {$GLOBALS['data']['debug'][] = $str;};
        
        // Настройки вашей почты
        $mail->Host       = 'smtp.mail.ru'; // SMTP сервера вашей почты
        $mail->Username   = 'murin@fredtm.ru'; // Логин на почте
        // $mail->Password   = '=========='; // Пароль на почте
        $mail->Password   = '3p65pdztMft6QFeNmkrm'; // Пароль приложения 
        $mail->SMTPSecure = 'ssl';
        $mail->Port       = 465;
        $mail->setFrom('murin@fredtm.ru', 'Name'); // Адрес самой почты и имя отправителя
        
        // Получатель письма
        $mail->addAddress('vitamin-971@yandex.ru');  
    
    
        // Отправка сообщения
        $mail->isHTML(true);
        $mail->Subject = $title;
        $mail->Body = $body;    
        
        // Проверяем отправленность сообщения
        if ($mail->send()) {
            $data['result'] = "success";
            $data['info'] = "Сообщение успешно отправлено!";
        } else {
            $data['result'] = "error";
            $data['info'] = "Сообщение не было отправлено. Ошибка при отправке письма";
            $data['desc'] = "Причина ошибки: {$mail->ErrorInfo}";
        }
        
    } else {
        $data['result'] = "error";
        $data['info'] = "В коде присутствует ошибка";
        $data['desc'] = error_get_last();
    }
    
    // Отправка результата
    header('Content-Type: application/json');
    echo json_encode($data);
    
    ?>
    Ответ написан
    1 комментарий