Доброго времени суток.
Сразу оговорюсь на js я говорю не в свободном стиле. Не знаю больше половины, а задача стоит сложная. Прошу ткнуть носом потому что подробности разбирать на три дня делов.
Вообщем есть калькулятор, оставлю ссылку на затычке по которой пытаюсь сейчас делать.
https://help.alt-line.ru/
Объяснять будет дольше что он делает, да и код довольно длинный.
С помощью гпт сделал подозрительную конструкцию, но в моей логике она должна работать.
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$calc_results = $_POST["calc_results"];
$to_email = 'your_email@example.com';
$subject = 'Результаты калькулятора';
$body = 'Результаты калькулятора: ' . $calc_results;
if (mail($to_email, $subject, $body)) {
echo("Email успешно отправлен $to_email");
} else {
echo("Email отправить не удалось.");
}
} else {
echo("В доступе отказано");
}
var calcResults = {};
// Собираем данные первой ступени
var step1 = document.querySelector('.calc_step[data-step="1"]');
var type = step1.querySelector('.calc_switch_value.calc_active').getAttribute('data-value');
calcResults['type'] = type;
// Собираем данные второй ступени
var step2 = document.querySelector('.calc_step[data-step="2"]');
var diameter = step2.querySelector('#calc_diameter .calc_dropdown_field').getAttribute('data-value');
var rings = step2.querySelector('#calc_rings .calc_dropdown_field').getAttribute('data-value');
calcResults['diameter'] = diameter;
calcResults['rings'] = rings;
// Остальные данные можно собрать аналогично
// Преобразуем объект в строку и записываем в скрытое поле
var calcResultsString = JSON.stringify(calcResults);
document.getElementById('calcResults').value = calcResultsString;
Тоесть, насколько я понимаю первый дружит с php, а второй начинает собирать массив с данными. Но письма приходят пустыми...Да я очень много перепробовал разных комбинаций, в последствии сам додумывая, но никак...
Подскажите как запихать в письмо хоть какие то данные с этого калькулятора. Не говоря уже о фотках...Это мечты.
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$calcResults = json_decode($_POST['calc_results'], true);}
if(isset($_POST['submit'])) {
$to = "rabota@mail.ru"; // Ваш email для получения результатов
$subject = "Результаты калькуляции"; // Тема письма
$calc_results = $_POST['calc_results']; // Результаты калькулятора
// Определение заголовков для корректной отправки письма
$headers = "From: your_email@example.com\r\n";
$headers .= "Reply-To: your_email@example.com\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
// Формирование тела письма
$message = "<html><body>";
$message .= "<h1>Результаты калькуляции:</h1>";
$message .= "<p>".$calc_results."</p>";
$message .= "</body></html>";
// Отправка письма
if(mail($to, $subject, $message, $headers)) {
echo "Результаты отправлены на почту";
} else {
echo "Ошибка отправки";
}
}
?>
Вообще все в последнем блоке собирается
<div class="calc_scheme">
<div id="well" class="calc_scheme_axis" style="left: 53px!important;"> </div>
<div id="well-1" class="calc_scheme_axis" style="left: 185px!important;;"> </div>
<div id="well-2" class="calc_scheme_axis" style="left: 233px!important;;"> </div>
</div>
По сути все соки мне бы с него вытянуть и отправить на почту. Это вообще возможно или нужно собирать чекбоксы.