@BLM21

Как изменить этот код, чтобы номер выводился кликабельным?

Непосредственно код.

HTML:

<html>

<div class="modal-overlay closed" id="modal-overlay"></div>

<div class="modal closed" id="modal" aria-hidden="true" role="dialog">
  <button class="close-button" id="close-button">Закрыть</button>
  <div class="modal-guts" role="document">
	<div class="form__wrapper">
	  <form id="form-contact" method="POST" class="form-element" autocomplete="off">
		<p class="form-title">Абу, иди сюда</p>
		<p class="form-message"></p>
		<input name="name" type="text" class="form-input__name" tabindex="0" placeholder="Введите ваше имя" required>
		<input name="phone" id="phone" type="tel" class="form-input__phone" tabindex="0" placeholder="Введите ваш телефон">
		<input name="theme" type="hidden" class="form-input__theme"  value="Заявка с сайта">
		<input type="submit" class="form-input__button" onclick="ym(52794661, 'reachGoal', 'zayavka'); return true;" value="Жду звонка!">
	  </form>
	</div>
  </div>
</div>

</html>


JS:

$(document).ready(function () {
	$("#phone").mask("+7 (999) 999-99-99");
  });

$(document).ready(function () {
    $(".form-element").submit(function () {
        var formID = $(this).attr('ID');
        var formNm = $('#' + formID);
        var message = $(formNm).find(".form-message");
        var formTitle = $(formNm).find(".form-title");
        $.ajax({
            type: "POST",
            url: 'https://ромашка.рф/callback-form/telegramform/php/send-message-to-telegram.php',
            data: formNm.serialize(),
            success: function (data) {
              // Вывод сообщения об успешной отправке
              message.html(data);
              formTitle.css("display","none");
			    $('input','.form-element').not(':input[type=submit], :input[type=hidden], :reset').val('');
				$(".form-element input[type=submit]").attr('disabled','disabled');
              /* setTimeout(function(){
                formTitle.css("display","block");
                message.html('');
                $(".form-element input[type=submit]").attr('enabled','enabled');				
              }, 30000); */
            },
            error: function (jqXHR, text, error) {
                // Вывод сообщения об ошибке отправки
                message.html(error);
                formTitle.css("display","none");
                setTimeout(function(){
                  formTitle.css("display","block");
                  message.html('');
                  $('input').not(':input[type=submit], :input[type=hidden]').val('');
                }, 3000);
            }
        });
        return false;
    });	
	
});


  var modal = document.querySelector("#modal"),
	  closeButton = document.querySelector("#close-button");

  closeButton.addEventListener("click", function() {
	modal.classList.toggle("closed");
	modalOverlay.classList.toggle("closed");
  });

  const  openButtons = document.querySelectorAll(".modal-btn");
  
  openButtons.forEach(btn=> {
    btn.addEventListener("click", () => {
       modal.classList.toggle("closed");
       modalOverlay.classList.toggle("closed");
    });
})

  const  modalOverlay = document.querySelector(".modal-overlay");

  modalOverlay.forEach(btn=> {
    modalOverlay.addEventListener("click", () => {
       modal.classList.toggle("closed");
       modalOverlay.classList.toggle("closed");
    });
})


PHP:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST['name']) && !empty($_POST['phone'])){
  if (isset($_POST['name'])) {
    if (!empty($_POST['name'])){
  $name = strip_tags($_POST['name']);
  $nameFieldset = "Имя пославшего: ";
  }
}

if (isset($_POST['phone'])) {
  if (!empty($_POST['phone'])){
  $phone = strip_tags($_POST['phone']);
  $phoneFieldset = "Телефон:%20";
  }
}
if (isset($_POST['theme'])) {
  if (!empty($_POST['theme'])){
  $theme = strip_tags($_POST['theme']);
  $themeFieldset = "Тема: ";
  }
}

$ip=$_SERVER["REMOTE_ADDR"]; // Вычисляем ip пользователя
$brose=$_SERVER["HTTP_USER_AGENT"]; // Вычисляем браузер пользователя
$txtname = trim($_POST['name']);
$txtNameValue = trim($_POST['name_class_value']);
$txtphone = trim($_POST['phone']);
$txttheme = trim($_POST['theme']);

// от кого
$fromMail = 'info@ромашка.рф';
$fromName = 'заявка с сайта';

// Сюда введите Ваш email
$emailTo = 'for@ромашка.рф';

$subject = 'Форма обратной связи';
$subject = '=?utf-8?b?'. base64_encode($subject) .'?=';
$headers = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "From: ". $fromName ." <". $fromMail ."> \r\n";

// тело письма
$body = "Получена заявка с сайта https://ромашка.рф\n\nИмя: $txtname\nТелефон: $txtphone\nТема: $txttheme\n\nIP отправителя: $ip\nБраузер отправителя: $brose";
$mail = mail($emailTo, $subject, $body, $headers, '-f'. $fromMail );

//echo 'ok';


$token = "111";
$chat_id = "-111";
$arr = array(
  $nameFieldset => $name,
  $phoneFieldset => $phone,
  $themeFieldset => $theme
);

foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};
$txt = str_replace('+','%2B',$txt);
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
if ($sendToTelegram) {
 
  echo '<p class="form-title success">Ура!</p>';
    return true;
} else {
  echo '<p class="form-title fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
} else {
  echo '<p class="form-title fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
} else {
header ("Location: /");
}

?>


Как-то я ставил вопрос иначе, но ответить никто не сумел.
Ясно, что где-то надо <a href="tel:$phone">$phone</a>, но как и где - чёрт его знает.
Полный ноль в PHP я .
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
// В браузере норм сработает и с пробелами. Просто оберните в тег ссылки.
$txtphone = trim($_POST['phone']);
$txtphone = "<a href='tel:$txtphone'>$txtphone</a>";

// Для телеги вырежьте все, кроме цифр
$phone = strip_tags($_POST['phone']);
$phone = preg_replace('/\D/', '', $phone);
$phone = '+'.$phone; // Плюсик вернем.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Bodrosh
Так вы же сами отвечаете на свой вопрос, в body (если то, что там есть, работает), вместо Телефон: $txtphone, нужно вставить:
<a href="tel:$txtphone">$txtphone</a>

Желательно предварительно добавить проверку, перевести в нужный формат, но это уже другая история)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы