Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2023, 19:48
Новичок на форуме
Отправить личное сообщение для ronibestplay Посмотреть профиль Найти все сообщения от ronibestplay
 
Регистрация: 23.11.2023
Сообщений: 1

Сбор данных в скрытый массив
Доброго времени суток.
Сразу оговорюсь на 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;">&nbsp;</div>
<div id="well-1" class="calc_scheme_axis" style="left: 185px!important;;">&nbsp;</div>
<div id="well-2" class="calc_scheme_axis" style="left: 233px!important;;">&nbsp;</div>
</div>

По сути все соки мне бы с него вытянуть и отправить на почту. Это вообще возможно или нужно собирать чекбоксы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать массив на основе данных другого массива PetrIII Общие вопросы Javascript 4 02.07.2019 13:07
alert массив данных при скролинге djonA jQuery 7 18.05.2018 21:51
Чтение данных из файла в массив TheSingleElk Общие вопросы Javascript 2 16.06.2016 01:09
Добавление данных в многомерный массив rneft Элементы интерфейса 11 28.03.2016 17:56
Подкачка данных в массив simple Общие вопросы Javascript 6 01.10.2010 09:20