Как отправить на почту сумму и значения из input полей не формы?

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
415
Реакции
436
Добрый день!
Есть калькулятор расчета стоимости.
Необходимо отправить на почту значения из полей радио, чекбоксов и итоговую сумму.
HTML калькулятора
HTML:
<div id="calclp">
<!--Радио поля-->
<input type="radio" id="r1" name="rr" checked="checked" value="Радио1" title="1500"><label for="r1"><span></span>Радио1</label>
<input type="radio" id="r2" name="rr" checked="checked" value="Радио2" title="1000"><label for="r1"><span></span>Радио1</label>
<!--Чекбокс поля-->
<input type="checkbox" id="dop1" name="dop1" value="Чекбокс1" title="200"><label for="dop1"><span></span>Чекбокс1</label>
<input type="checkbox" id="dop2" name="dop2" value="Чекбокс2" title="200"><label for="dop1"><span></span>Чекбокс2</label>
<!--Сумма-->
<div class="calcpriceitog">Цена: <span class="lpprice">4600</span> руб.</div>
</div>

JS калькулятора
Код:
var checkboxlp = $("#calclp input");
function calculatecost(path) {
  var     type_m = $(path).val(),
    type_p = $(path).attr("title"),
    price = 0;
  $('.hideinfo1').text('');
        checkboxlp.each(function(){
            if ($(this).is(":checked")){
                price = parseFloat(price) + parseFloat($(this).attr("title"));
    $('.lpprice').text(price);
    $('.hideinfo1').append($(this).val(), " - ", $(this).attr("title"), "\n");
    $('.hideinfo2').val(price);
            }
        });
}

$('#calclp input').change(function() {
      calculatecost(this);
})

calculatecost();
Форма отправки
HTML:
<form action="mail.php" method="post">
                            <div class="input-block"><div class="input-img input-img1"></div><input name="name" class="required" type="text" placeholder="Введите Ваше имя"></div>
            <div class="input-block"><div class="input-img input-img2"></div><input name="phone" class="phoneform required" type="text" placeholder="Введите Ваш телефон"></div>
            <button class="btn btn-transparent">Отправить</button>
          <p class="msgs"></p>
        </form>

Обработчик
PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (!empty($_POST['name']) && !empty($_POST['phone'])){
      if (isset($_POST['name'])) {
          if (!empty($_POST['name'])){
          $uname = strip_tags($_POST['name']) . "<br>";
          $unameFieldset = "<b>Имя:</b>";
         }
    }
    if (isset($_POST['phone'])) {
        if (!empty($_POST['phone'])){
          $uphone = strip_tags($_POST['phone']) . "<br>";
          $uphoneFieldset = "<b>Телефон:</b>";
        }
    }
   
    if (isset($_POST['question'])) {
        if (!empty($_POST['question'])){
          $mymessage = strip_tags($_POST['question']) . "<br>";
          $mymessageFieldset = "<b>Сообщение:</b>";
        }
    }
   

    $to = "1@mail.ru";
    $sendfrom = "1@mail.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";
    $headers .= "Content-Transfer-Encoding: 8bit \r\n";
    $subject = "Письмо с сайта";
    $message = "$unameFieldset $uname
                $uphoneFieldset $uphone
                $sumFieldset $total
                $mymessageFieldset $mymessage
                $formInfoFieldset $formInfo";

    $send = mail ($to, $subject, $message, $headers);
        if ($send == 'true') {
            echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
        } else {
          echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
        }
  } else {
      echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
  }
} else {

}

Благодарю за помощь!
 
Добрый день!
Есть калькулятор расчета стоимости.
Необходимо отправить на почту значения из полей радио, чекбоксов и итоговую сумму.
HTML калькулятора
HTML:
<div id="calclp">
<!--Радио поля-->
<input type="radio" id="r1" name="rr" checked="checked" value="Радио1" title="1500"><label for="r1"><span></span>Радио1</label>
<input type="radio" id="r2" name="rr" checked="checked" value="Радио2" title="1000"><label for="r1"><span></span>Радио1</label>
<!--Чекбокс поля-->
<input type="checkbox" id="dop1" name="dop1" value="Чекбокс1" title="200"><label for="dop1"><span></span>Чекбокс1</label>
<input type="checkbox" id="dop2" name="dop2" value="Чекбокс2" title="200"><label for="dop1"><span></span>Чекбокс2</label>
<!--Сумма-->
<div class="calcpriceitog">Цена: <span class="lpprice">4600</span> руб.</div>
</div>

JS калькулятора
Код:
var checkboxlp = $("#calclp input");
function calculatecost(path) {
  var     type_m = $(path).val(),
    type_p = $(path).attr("title"),
    price = 0;
  $('.hideinfo1').text('');
        checkboxlp.each(function(){
            if ($(this).is(":checked")){
                price = parseFloat(price) + parseFloat($(this).attr("title"));
    $('.lpprice').text(price);
    $('.hideinfo1').append($(this).val(), " - ", $(this).attr("title"), "\n");
    $('.hideinfo2').val(price);
            }
        });
}

$('#calclp input').change(function() {
      calculatecost(this);
})

calculatecost();
Форма отправки
HTML:
<form action="mail.php" method="post">
                            <div class="input-block"><div class="input-img input-img1"></div><input name="name" class="required" type="text" placeholder="Введите Ваше имя"></div>
            <div class="input-block"><div class="input-img input-img2"></div><input name="phone" class="phoneform required" type="text" placeholder="Введите Ваш телефон"></div>
            <button class="btn btn-transparent">Отправить</button>
          <p class="msgs"></p>
        </form>

Обработчик
PHP:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (!empty($_POST['name']) && !empty($_POST['phone'])){
      if (isset($_POST['name'])) {
          if (!empty($_POST['name'])){
          $uname = strip_tags($_POST['name']) . "<br>";
          $unameFieldset = "<b>Имя:</b>";
         }
    }
    if (isset($_POST['phone'])) {
        if (!empty($_POST['phone'])){
          $uphone = strip_tags($_POST['phone']) . "<br>";
          $uphoneFieldset = "<b>Телефон:</b>";
        }
    }
 
    if (isset($_POST['question'])) {
        if (!empty($_POST['question'])){
          $mymessage = strip_tags($_POST['question']) . "<br>";
          $mymessageFieldset = "<b>Сообщение:</b>";
        }
    }
 

    $to = "1@mail.ru";
    $sendfrom = "1@mail.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";
    $headers .= "Content-Transfer-Encoding: 8bit \r\n";
    $subject = "Письмо с сайта";
    $message = "$unameFieldset $uname
                $uphoneFieldset $uphone
                $sumFieldset $total
                $mymessageFieldset $mymessage
                $formInfoFieldset $formInfo";

    $send = mail ($to, $subject, $message, $headers);
        if ($send == 'true') {
            echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
        } else {
          echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
        }
  } else {
      echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
  }
} else {

}

Благодарю за помощь!
а почему поля калькулятора отдельно от формы?
 
а почему поля калькулятора отдельно от формы?
Сама форма реализуется во всплывающем окне при нажатии на кнопку
Код:
<a href="#calc-form" class="btn" data-sr='over 0.8s'>
              Отправить
            </a>
 
Код:
<form id="calclp">
<!--Радио поля-->
<input type="radio" id="r1" name="rr" checked="checked" value="Радио1" title="1500"><label for="r1"><span></span>Радио1</label>
<input type="radio" id="r2" name="rr" value="Радио2" title="1000"><label for="r1"><span></span>Радио1</label>
<!--Чекбокс поля-->
<input type="checkbox" id="dop1" name="dop1" value="Чекбокс1" title="200"><label for="dop1"><span></span>Чекбокс1</label>
<input type="checkbox" id="dop2" name="dop2" value="Чекбокс2" title="200"><label for="dop1"><span></span>Чекбокс2</label>
<!--Сумма-->
<input type="hidden" name="calcpriceitog" value="4600">
<div class="calcpriceitog">Цена: <span class="lpprice">4600</span> руб.</div>
</form>

<form id="form-calc" action="mail.php" method="post">
   <div class="input-block">
       <div class="input-img input-img1">
          
       </div>
       <input name="name" class="required" type="text" placeholder="Введите Ваше имя"></div>
        <div class="input-block">
            <div class="input-img input-img2"></div>
            <input name="phone" class="phoneform required" type="text" placeholder="Введите Ваш телефон">
        </div>
        <button class="btn btn-transparent">Отправить</button>
         <div class="msgs"></div>
</form>


<script type="text/javascript">
    var checkboxlp = $("#calclp input");
function calculatecost(path) {
  var     type_m = $(path).val(),
    type_p = $(path).attr("title"),
    price = 0;
  $('.hideinfo1').text('');
        checkboxlp.each(function(){
            if ($(this).is(":checked")){
                price = parseFloat(price) + parseFloat($(this).attr("title"));
    $('.lpprice').text(price);
    $('[name="calcpriceitog"]').val(price);
    $('.hideinfo1').append($(this).val(), " - ", $(this).attr("title"), "\n");
    $('.hideinfo2').val(price);
            }
        });
}

$('#calclp input').change(function() {
      calculatecost(this);
})

calculatecost();

$('#form-calc').submit(function(event) {
    event.preventDefault();
$.ajax({
    url: 'mail.php',
    type: 'POST',
    //dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
    data: $('#form-calc,#calclp').serialize(),
})
.done(function(response) {
    $('#form-calc .msgs').html(response);
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});

});

</script>

mail.php

Код:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (!empty($_POST['name']) && !empty($_POST['phone'])){
   $message_form = '';
   if (isset($_POST['name'])) {
    if (!empty($_POST['name'])){
     $message_form .= "<b>Имя:</b>";
     $message_form .= strip_tags($_POST['name']) . "<br>";

   }
}
if (isset($_POST['phone'])) {
  if (!empty($_POST['phone'])){
    $message_form .= "<b>Телефон:</b>";
    $message_form .= strip_tags($_POST['phone']) . "<br>";

  }
}
if (isset($_POST['question'])) {
  if (!empty($_POST['question'])){
   $message_form .= "<b>Сообщение:</b>";
   $message_form .= strip_tags($_POST['question']) . "<br>";

}
}

if (isset($_POST['calcpriceitog'])) {
  if (!empty($_POST['calcpriceitog'])){
    $message_form .= "<b>Итог:</b>" ;
    $message_form .= strip_tags($_POST['calcpriceitog']) . "<br>";

  }
}

if (isset($_POST['rr'])) {
  if (!empty($_POST['rr'])){
   $message_form .= "<b>Радио поле 1:</b>";
   $message_form .= strip_tags($_POST['rr']) . "<br>";

}
}

if (isset($_POST['dop1'])) {
  if (!empty($_POST['dop1'])){
    $message_form .= "<b>Чекбокс поле 1:</b>";
    $message_form .= strip_tags($_POST['dop1']) . "<br>";

  }
}
if (isset($_POST['dop2'])) {
  if (!empty($_POST['dop2'])){
    $message_form .= "<b>Чекбокс поле 2:</b>";
    $message_form .= strip_tags($_POST['dop2']) . "<br>";

  }
}

$to = "1@mail.ru";
$sendfrom = "1@mail.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";
$headers .= "Content-Transfer-Encoding: 8bit \r\n";
$subject = "Письмо с сайта";
$message = $message_form;

$send = mail ($to, $subject, $message, $headers);
if ($send == 'true') {
  echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
} else {
  echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
} else {
  echo '<p class="fail">Ошибка. Вы заполнили не все обязательные поля!</p>';
}
} else {

}
?>
 
if (isset($_POST['dop1'])) { if (!empty($_POST['dop1'])){ $message_form .= "<b>Чекбокс поле 1:</b>"; $message_form .= strip_tags($_POST['dop1']) . "<br>"; } }
А если будет очень много чекбоксов, то как сделать вывод одной строкой через запятую?
UPD. Решил сам
Разметка
HTML:
<input type="checkbox" id="dop1" name="additional[]" value="Автоматическая оплата" title="200">
PHP:
$additional = '';
if (!empty($_POST["additional"]) && is_array($_POST["additional"]))
{
    $additional .= "<b>Дополнительный функционал:</b>";
    $additional .= implode(" ", $_POST["additional"]);
  
}
 
Последнее редактирование:
Добрый день


Подскажите, а есть архив с работающим скриптом ? не совсем понятно как это всё прописать , что в какой файл )
 
html код в лендос, код ПХП в файл mail.php в каталоге лендоса.
 
html код в лендос, код ПХП в файл mail.php в каталоге лендоса.

Что то не запускается, пишет ошибку:

Uncaught ReferenceError: $ is not defined

в строке
var checkboxlp = $("#calclp input");

При нажатии отправить - вылетает в код
 
Назад
Сверху