Задать вопрос
@lesmanora

Почему сообщение с формы приходит с пустыми значениями?

Добрый день! Вообще ситуация такова, что начала ставить эквайринг от банка и оказалось, что не все значения передаются в транзакцию и предложили сделать еще отправку письма со всеми полями. Не буду говорить о том, что я понятия не имею, как сделать отправку письма, после того, как эквайринг оплачен, то самое легкое решение стало сделать вначале простую отправку сообщения с формы, а потом уже оплата эквайринга. В общем, сообщения приходят пустые! Помогите, пожалуйста.
А если понимаете в Эквайринге от Росбанка.... то, очень хотелось бы с вами поговорить.

Форма:

spoiler
<form id="forms">
            
            
            
            <div class="sample">
                
                
                <div class="form-group" style=" display: none; " >
      <input type="text" name="kniga" class="form-control3" id="kniga-sample-4" style="border: none;" id="kniga-sample-4" value="<?php echo $row1["title"]; ?>"  >
  </div>
                
                <div class="form-group">
    <label>Стоимость книги:</label>
      <input type="text" class="form-control3" style="border: none;" id="summa" value="<?php echo $row1["summa"]; ?>" onchange="calc()" >
  </div>
        
        
        <div class="form-group">
            
            <label for="amount-sample-4">Страна:</label>
        
        <div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="rossia" value="0" onchange="calc()" >
  <label class="form-check-label" for="rossia">
    Россия
  </label>
</div>

<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios" id="drstrana" value="600" onchange="calc()" >
  <label class="form-check-label" for="drstrana">
    Другая страна
  </label>
</div>
</div>


        <div class="form-group">
            
            <label for="amount-sample-4">Доставка:</label>
        
        <div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios1" id="pochta"  value="600" onchange="calc()" >
  <label class="form-check-label" for="pochta">
    Курьерская доставка
  </label>
</div>

<div class="form-check">
  <input class="form-check-input" type="radio" name="exampleRadios1" id="kurier" value="0" onchange="calc()" >
  <label class="form-check-label" for="kurier">
    Почта России
  </label>
</div>
  </div>  	
            
        <div class="form-group">

            <label for="address-sample-4">Полный адрес:</label>
            <div>
                <input id="address-sample-4" name="adress" required="" placeholder="Страна, область, город, улица, дом, квартира, индекс" class="form-control" type="text" value="" size="30" required>
            </div>
        </div>        
                
                
         <div class="form-group">
            <label for="lastName-sample-4">Фамилия:</label>
            <div>
                <input id="lastName-sample-4" name="lastName" required="" placeholder="Петров" class="form-control" type="text" value="" size="30" required>
            </div>
        </div>       
                
        <div class="form-group">

            <label for="name-sample-4">Имя:</label>
            <div>
                <input id="name-sample-4" name="name" required="" placeholder="Петр" class="form-control" type="text" value="" size="30" required>
            </div>
        </div>

        
        <div class="form-group">
            <label for="firstName-sample-4">Отчество:</label>
            <div>
                <input id="firstName-sample-4" name="firstName" required="" placeholder="Петрович" class="form-control" type="text" value="" size="30" required>
            </div>
        </div>

        <div class="form-group">
            <label for="phone-sample-4">Номер телефона:</label>
            <div>
                <input id="phone-sample-4" name="phone" required="" placeholder="" class="form-control" type="text" size="30" required>
            </div>
        </div>

        <div class="form-group">
            <label for="email-sample-4">E-mail адрес:</label>
            <div>
                <input id="email-sample-4" name="email" required="" placeholder="" class="form-control" type="text" value="" size="30" required>
            </div>
        </div>

        <div class="form-group">
            <div class="row">
                <div class="col-md-6">
                    <label for="amount-sample-4">Итоговая сумма:</label>
            <div>
                
                <span id="result" class="rsum" >0</span> <span class="rsum2" >руб</span>
                <input id="amount-sample-4" name="sum" required="" placeholder="" class="form-control" style=" display: none; " type="text" value=" " onchange="calc()" size="30">

            </div>
                </div>
                
                <div class="col-md-6">
                    <input id="checkout-sample-4" value="Оформить заказ" class="button" style="color: #fff; float: right;  background-color: rgba(164, 170, 89, 0.98);  
        border-color: rgba(164, 170, 89, 0.98); border-style: solid none;     padding: 8px 20px 8px 20px; border-radius: 5px; margin-top: 30px; "    type="submit">
                </div>
                
            </div>
        </div>
</div>
    	<br/>
  </form>


JS для отправки данных с формы:

spoiler
$(document).ready(function () {
    $("#forms").submit(function () {
        // Получение ID формы
        var formID = $(this).attr('id');
        // Добавление решётки к имени ID
        var formNm = $('#' + formID);
        $.ajax({
            type: "POST",
            url: 'orders.php',
            data: formNm.serialize(),
            success: function (data) {
                // Вывод текста результата отправки
                $(formNm).html(data); 
            },
            error: function (jqXHR, text, error) {
                // Вывод текста ошибки отправки
                $(formNm).html(error);         
            }
        });
        return false;
    });
});


И сама отправка:

spoiler
<?php
//if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_POST['kniga'])) {$kniga = $_POST['kniga'];}
    if (isset($_POST['exampleRadios'])) {$exampleRadios = $_POST['exampleRadios'];}
    if (isset($_POST['exampleRadios1'])) {$exampleRadios1 = $_POST['exampleRadios1'];} 
    if (isset($_POST['adress'])) {$adress = $_POST['adress'];}
    if (isset($_POST['lastName'])) {$lastName = $_POST['lastName'];}
    if (isset($_POST['name'])) {$name = $_POST['name'];}   
    if (isset($_POST['firstName'])) {$firstName = $_POST['firstName'];}
    if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
    if (isset($_POST['email'])) {$email = $_POST['email'];} 
    if (isset($_POST['sum'])) {$sum = $_POST['sum'];}   


    $to = "itdriada@yandex.ru"; /*Укажите адрес, га который должно приходить письмо*/
	$sendfrom   = "itdriada@yandex.ru"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
    $headers  = "From: " . strip_tags($sendfrom) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
    $subject = "$text";
	$message = "$text<br> 
	<b>Имя:</b> $name <br>
	<b>Фамилия:</b> $lastName <br>
	<b>Отчество:</b> $firstName <br>

	";

	
    $send = mail ($to, $subject, $message, $headers);
    if ($send == 'true')
    {
    echo '<center><p class="success">Спасибо за обращение!
    
    <b>Имя:</b>'.$name.'<br>
	<b>Фамилия:</b> $lastName <br>
	<b>Отчество:</b> $firstName <br>
    
    
    </p></center>';
    }
    else 
    {
    echo '<center><p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p></center>';
    }
/*} else {
    http_response_code(403);
    echo "Попробуйте еще раз";
}*/
?>


И можно ли как то в echo продублировать отправленные данные?
  • Вопрос задан
  • 139 просмотров
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Так много вопросов, и так мало ответов....
$("#forms").submit(function () {
        // Получение ID формы 
        var formID = $(this).attr('id');
        // Добавление решётки к имени ID
        var formNm = $('#' + formID);

То есть мы взяли форму по айди(!), чтобы потом из нее узнать айди, чтобы потом по айди ее вызвать... Найс, фигли...

В остальном - как написал Дмитрий, все по порядку - консоль, потом, если нет ошибок консоль-нетворк, проверить что уходит и что приходит, потом смотреть что на сервере происходит - вар_дамп все переменные по очереди...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы