@RushV

Как отправить значения из input на почту?

Здравствуйте!
Попытался отправить цифры на почту не получилось.
Как отправить цифры на почту?
<div class="form-horizontal">
					  <input type="tel" class="numberField form-control" id="numberField">
						<div class="numbersGrid">
						  <div class="numbersCol"><button class="numberButton" data-symbol="1">1</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="2">2</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="3">3</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="4">4</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="5">5</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="6">6</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="7">7</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="8">8</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="9">9</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="*">*</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="0">0</button></div>
						  <div class="numbersCol"><button class="numberButton" data-symbol="#">#</button></div>
						</div>

						<a href="" id="call" class="call">ОТПРАВИТЬ</a>
					</div>
Скрипт:
<code lang="javascript">
$(document).ready(function() {
$(() => {
	
  class Call {
  	constructor () {
    	this.elements = {
      	numberButtons: $('.numberButton'),
        numberField: $('#numberField'),
        call: $('#call')
      };
      
      this.init();
    }
    
    init () {
    	this.bindEvents();
    }
    
    // Обработка клика по кнопке с символом
    onClickSymbol (event) {
		var el = $(event.currentTarget);
        var symbol = el.data('symbol');
      
        var val = this.elements.numberField.val();
        var newVal = val + symbol;
      
      this.elements.numberField.val(newVal);
      this.setTelNumberInCall(newVal);
      
    }
    
    // Обработка по вводу в поле
    onInput (event) {
    	var value = this.elements.numberField.val();
    
    	this.setTelNumberInCall(value);
    }
    
    // Установить значение с телефоном в кнопку вызова
    setTelNumberInCall (value) {
    	var telFormat = `tel:${value}`;
      
    	this.elements.call.attr('href', telFormat);
    }
    
    // Отправить номер на сервер
    sendNumber (number) {
    	$.ajax({
        url: 'action.php', // Куда отправить
        type: 'default GET (Other values: POST)', // Каким методом
        dataType: 'json',
        data: {
        	number
        }
      })
      .done(() => console.log("success"))
      .fail(() => console.log("error"));
    }
    
    // Навешивание событий
    bindEvents () {
    	// Клик по символам
    	this.elements.numberButtons.on('click', (event) => {
      	this.onClickSymbol(event);
      });
      
      // Ввод в поле
      this.elements.numberField.on('input', (event) => {
      	this.onInput(event);
      });
    }
  }
  
  var call = new Call();
  
});
});

</code>

вот что я написал это конечно кошмар я только учусь:
<?php
	header("Content-Type: text/html; charset=utf-8");
	
	function send_form($message) {
	
		$mail_to = "Irtg@yandex.ru.ru"; // Адрес, куда отправляем письма
		$headers = "MIME-Version: 1.0rn";
		$headers .= "Content-type: text/html; charset=utf-8rn";
		$headers .= "From: ".$subject." <no-reply@".$_SERVER['HTTP_HOST'].">rn";
		mail($mail_to, $subject, $message, $headers);
		
	}  

	$sendNumber = "";
	$errors = array();
	
		$msg_result = "";
		
		foreach($errors as $all_error) {
			$sendNumber .= $all_error."<br>";
		}
		
	}

	echo json_encode(array(
		"result" => $sendNumber
	));   
?>
  • Вопрос задан
  • 487 просмотров
Пригласить эксперта
Ответы на вопрос 3
@GreatRash
Не пишите велосипеды. Юзайте готовое решение.
Ответ написан
skobkin
@skobkin
Гентушник, разработчик на PHP и Symfony.
function send_form($message) {
  
    $mail_to = "Irtg@yandex.ru.ru"; // Адрес, куда отправляем письма
    $headers = "MIME-Version: 1.0rn";
    $headers .= "Content-type: text/html; charset=utf-8rn";
    $headers .= "From: ".$subject." <no-reply@".$_SERVER['HTTP_HOST'].">rn";
    mail($mail_to, $subject, $message, $headers);
    
  }


Посмотрите на этот код и подумайте, откуда в скоупе функции send_form() возьмётся переменная $subject. А ещё посмотрите, что в итоге у вас получается в строке $headers, насколько валидно это значение (например, отсутствия точек с запятой, непонятные "rn") и подумайте, зачем вы всё это туда кладёте.

Как только обдумаете это достаточно хорошо (не придя к тому, что стоит использовать глобальные переменные), переходите к обдумыванию того, откуда в этих переменных берутся их значения (тема, адрес, etc).

Потом найдите в коде место, где вы вызываете функцию, которая должна отправлять сообщение.

P.S. Потом, когда разберётесь, что именно сделали не так, исправите код и он заработает, идите на https://www.phptherightway.com/ (там есть русская версия, но лучше читать оригинал) и изучайте хорошие практики написания.
Ответ написан
Комментировать
@kuftachev
Если у Вас просто сайт на который нужно вставить форму, думаю за 20$ Вам это сделают и все будут довольны.

Если это Вы учитесь, то рано берётесь что-то писать, если ещё ничего не понимаете.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 11:49
25000 руб./за проект
25 апр. 2024, в 11:37
40000 руб./за проект