Почему не отправляется форма?

Ссылка скопирована
1 ответ
"use strict"  document.addEventListener('DOMContentLoaded', function () {     const form = document.getElementById('form');     form.addEventListener('submit', formSend);      async function formSend(e) {         e.preventDefault();          let error = formValidate(form);          let formData = new FormData(form);                   if (error === 0) {             let response = await fetch('mail.php', {                 method: 'POST',                 body: formData             });             if (response.ok) {                 let result = await response.json();                 alert(result.message);                 formPreview.innerHTML = '';                 form.reset();                            } else {                 alert("Ошибка")                         }          }else{             alert ('Заполните обязательные поля')         }     }       function formValidate(form) {         let error = 0;         let formReq = document.querySelectorAll('._req');          for (let index = 0; index < formReq.length; index++) {             const input = formReq[index];             formRemoveError(input);              if (input.classList.contains('_email')) {                 if (emailTest(input)){                     formAddError(input);                     error++;                 }              } else if (input.getAttribute("type")==="checkbox" && input.checked === false) {                 formAddError(input);                 error++;             }else{                 if (input.value === '') {                     formAddError(input);                     error++;                 }             }         }         return error;     }     function formAddError(input) {         input.parentElement.classList.add('_error');         input.classList.add('_error');     }     function formRemoveError(input) {         input.parentElement.classList.remove('_error');         input.classList.remove('_error');     }  /* функция проверки емайл */     function emailTest(input) {         return !/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,8})+$/.test(input.value);     } });

"use strict" document.addEventListener('DOMContentLoaded', function () { const form = document.getElementById('form'); form.addEventListener('submit', formSend); async function formSend(e) { e.preventDefault(); let error = formValidate(form); let formData = new FormData(form); if (error === 0) { let response = await fetch('mail.php', { method: 'POST', body: formData }); if (response.ok) { let result = await response.json(); alert(result.message); formPreview.innerHTML = ''; form.reset(); } else { alert("Ошибка") } }else{ alert ('Заполните обязательные поля') } } function formValidate(form) { let error = 0; let formReq = document.querySelectorAll('._req'); for (let index = 0; index < formReq.length; index++) { const input = formReq[index]; formRemoveError(input); if (input.classList.contains('_email')) { if (emailTest(input)){ formAddError(input); error++; } } else if (input.getAttribute("type")==="checkbox" && input.checked === false) { formAddError(input); error++; }else{ if (input.value === '') { formAddError(input); error++; } } } return error; } function formAddError(input) { input.parentElement.classList.add('_error'); input.classList.add('_error'); } function formRemoveError(input) { input.parentElement.classList.remove('_error'); input.classList.remove('_error'); } /* функция проверки емайл */ function emailTest(input) { return !/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,8})+$/.test(input.value); } });

<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException;   require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php';  $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->setLanguage('ru', 'phpmailer/language/'); $mail->IsHTML(true);    $mail->setFrom('HPL');  $mail->addAddress('Andrey56.89@mail.ru');  $mail->Subject = 'У вас письмо!'   $body = '<h1>Заявка!</h1>';  if(trim(!empty($_POST['name']))){     $body.='<p><strong>Имя:</strong> '.$_POST['name']. '</p>'; } if(trim(!empty($_POST['phone']))){     $body.='<p><strong>Телефон:</strong>' .$_POST['phone']. '</p>'; } if(trim(!empty($_POST['email']))){     $body.='<p><strong>email:</strong>' .$_POST['email']. '</p>'; }  $mail->Body = $body;  if (!$mail->send()) {     $message = 'Ошибка' ; } else {     $message = 'Данные отправлены!'; }  $response = ['message' => $message];  header('Content-type: application/json'); echo json_encode($response); ?>

<?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->setLanguage('ru', 'phpmailer/language/'); $mail->IsHTML(true); $mail->setFrom('HPL'); $mail->addAddress('Andrey56.89@mail.ru'); $mail->Subject = 'У вас письмо!' $body = '<h1>Заявка!</h1>'; if(trim(!empty($_POST['name']))){ $body.='<p><strong>Имя:</strong> '.$_POST['name']. '</p>'; } if(trim(!empty($_POST['phone']))){ $body.='<p><strong>Телефон:</strong>' .$_POST['phone']. '</p>'; } if(trim(!empty($_POST['email']))){ $body.='<p><strong>email:</strong>' .$_POST['email']. '</p>'; } $mail->Body = $body; if (!$mail->send()) { $message = 'Ошибка' ; } else { $message = 'Данные отправлены!'; } $response = ['message' => $message]; header('Content-type: application/json'); echo json_encode($response); ?>

ccылка
Ссылка удалена модератором.

Дополнительно:

Для начала оформите код...

  • "use strict"  document.addEventListener('DOMContentLoaded', function () {     const form = document.getElementById('form');     form.addEventListener('submit', formSend);      async function formSend(e) {         e.preventDefault();          let error = formValidate(form);          let formData = new FormData(form);                   if (error === 0) {             let response = await fetch('mail.php', {                 method: 'POST',                 body: formData             });             if (response.ok) {                 let result = await response.json();                 alert(result.message);                 formPreview.innerHTML = '';                 form.reset();                            } else {                 alert("Ошибка")                         }          }else{             alert ('Заполните обязательные поля')         }     }       function formValidate(form) {         let error = 0;         let formReq = document.querySelectorAll('._req');          for (let index = 0; index < formReq.length; index++) {             const input = formReq[index];             formRemoveError(input);              if (input.classList.contains('_email')) {                 if (emailTest(input)){                     formAddError(input);                     error++;                 }              } else if (input.getAttribute("type")==="checkbox" && input.checked === false) {                 formAddError(input);                 error++;             }else{                 if (input.value === '') {                     formAddError(input);                     error++;                 }             }         }         return error;     }     function formAddError(input) {         input.parentElement.classList.add('_error');         input.classList.add('_error');     }     function formRemoveError(input) {         input.parentElement.classList.remove('_error');         input.classList.remove('_error');     }  /* функция проверки емайл */     function emailTest(input) {         return !/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,8})+$/.test(input.value);     }        });

    "use strict" document.addEventListener('DOMContentLoaded', function () { const form = document.getElementById('form'); form.addEventListener('submit', formSend); async function formSend(e) { e.preventDefault(); let error = formValidate(form); let formData = new FormData(form); if (error === 0) { let response = await fetch('mail.php', { method: 'POST', body: formData }); if (response.ok) { let result = await response.json(); alert(result.message); formPreview.innerHTML = ''; form.reset(); } else { alert("Ошибка") } }else{ alert ('Заполните обязательные поля') } } function formValidate(form) { let error = 0; let formReq = document.querySelectorAll('._req'); for (let index = 0; index < formReq.length; index++) { const input = formReq[index]; formRemoveError(input); if (input.classList.contains('_email')) { if (emailTest(input)){ formAddError(input); error++; } } else if (input.getAttribute("type")==="checkbox" && input.checked === false) { formAddError(input); error++; }else{ if (input.value === '') { formAddError(input); error++; } } } return error; } function formAddError(input) { input.parentElement.classList.add('_error'); input.classList.add('_error'); } function formRemoveError(input) { input.parentElement.classList.remove('_error'); input.classList.remove('_error'); } /* функция проверки емайл */ function emailTest(input) { return !/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,8})+$/.test(input.value); } });

    <?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException;   require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php';  $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->setLanguage('ru', 'phpmailer/language/'); $mail->IsHTML(true);    $mail->setFrom('HPL');  $mail->addAddress('Andrey56.89@mail.ru');  $mail->Subject = 'У вас письмо!'   $body = '<h1>Заявка!</h1>';  if(trim(!empty($_POST['name']))){     $body.='<p><strong>Имя:</strong> '.$_POST['name']. '</p>'; } if(trim(!empty($_POST['phone']))){     $body.='<p><strong>Телефон:</strong>' .$_POST['phone']. '</p>'; } if(trim(!empty($_POST['email']))){     $body.='<p><strong>email:</strong>' .$_POST['email']. '</p>'; }  $mail->Body = $body;  if (!$mail->send()) {     $message = 'Ошибка' ; } else {     $message = 'Данные отправлены!'; }  $response = ['message' => $message];  header('Content-type: application/json'); echo json_encode($response); ?>

    <?php use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'phpmailer/src/Exception.php'; require 'phpmailer/src/PHPMailer.php'; $mail = new PHPMailer(true); $mail->CharSet = 'UTF-8'; $mail->setLanguage('ru', 'phpmailer/language/'); $mail->IsHTML(true); $mail->setFrom('HPL'); $mail->addAddress('Andrey56.89@mail.ru'); $mail->Subject = 'У вас письмо!' $body = '<h1>Заявка!</h1>'; if(trim(!empty($_POST['name']))){ $body.='<p><strong>Имя:</strong> '.$_POST['name']. '</p>'; } if(trim(!empty($_POST['phone']))){ $body.='<p><strong>Телефон:</strong>' .$_POST['phone']. '</p>'; } if(trim(!empty($_POST['email']))){ $body.='<p><strong>email:</strong>' .$_POST['email']. '</p>'; } $mail->Body = $body; if (!$mail->send()) { $message = 'Ошибка' ; } else { $message = 'Данные отправлены!'; } $response = ['message' => $message]; header('Content-type: application/json'); echo json_encode($response); ?>

  • Сделайте
    .... $mail->IsHTML(true); $mail->SMTPDebug = 2; $mail->Debugoutput = function($str, $level) {     $GLOBALS['mail_debug'] .= "$level: $strn"; }; .... .... .... if (!$mail->send()) { $message = 'Ошибка' ; error_log($mail_debug); }

    .... $mail->IsHTML(true); $mail->SMTPDebug = 2; $mail->Debugoutput = function($str, $level) { $GLOBALS['mail_debug'] .= "$level: $strn"; }; .... .... .... if (!$mail->send()) { $message = 'Ошибка' ; error_log($mail_debug); }

  • AUser0, Зачем? Там вообще не факт что хоть что-то работает на фронте, какой смысл дебажить бэк? И сделает он error_log($mail_debug); , дальше же он ничего не поймет что делать...
  • ThunderCat, ну а вдруг?!
  • AUser0, Все мы замечательно знаем что бывает "вдруг" )
  • Ответы:

    1) Что пишет конслоль?
    2) Запрос вообще выполняется? В нетворке виден запрос по субмиту на mail.php?
    3) Что показывает нетворк в пэйлоаде запроса?
    4) Что возвращает сервер на запрос?

    • *Uncaught (in promise) SyntaxError: Unexpected token '<', "

      "... is not valid JSON
      это в консоли

      Parse error: syntax error, unexpected variable "$body" in /var/www/u2142199/data/www/andreykrylov.ru/sendmail.php on line 26

      это в sources

    • Почему не отправляется форма?

      Почему не отправляется форма?

    • Andr_ey56,

      unexpected variable "$body" in /var/www/u2142199/data/www/andreykrylov.ru/sendmail.php on line 26

      Читаем, переводим, понимаем, фиксим - профит.

    • ThunderCat, ну вот, вдруг случилось, уже хоть что-то.
    • Andr_ey56, Короче, не надеюсь на вашу внимательность и сообразительность,
      $mail-&gt;Subject = 'У вас письмо!' //здесь пропущена точка с запятой в конце строки $body = '&lt;h1&gt;Заявка!&lt;/h1&gt;';

      $mail-&gt;Subject = 'У вас письмо!' //здесь пропущена точка с запятой в конце строки $body = '&lt;h1&gt;Заявка!&lt;/h1&gt;';

      Учитесь читать ошибки и хотя бы базовому синтаксису...

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Для того чтобы определить причину, по которой форма не отправляется, необходимо провести несколько проверок и исследований. Вот несколько возможных причин и способы их устранения:

    1. Проверьте правильность атрибутов формы:
    - Убедитесь, что у формы есть атрибуты `action` и `method`. `action` должен указывать на URL обработчика формы, а `method` должен быть либо `GET`, либо `POST`.
    - Проверьте, что у всех полей формы есть уникальные имена (`name`).

    2. Проверьте наличие обязательных полей:
    - Если некоторые поля формы обозначены как обязательные, убедитесь, что они заполнены.

    3. Проверьте наличие JavaScript ошибок:
    - Проверьте консоль браузера на наличие ошибок JavaScript. Ошибки JavaScript могут препятствовать отправке формы.

    4. Проверьте настройки сервера:
    - Убедитесь, что ваш сервер правильно настроен для обработки форм. Проверьте файлы конфигурации сервера (например, `.htaccess` для серверов Apache).

    5. Проверьте файл обработчика формы:
    - Убедитесь, что обработчик формы (например, PHP скрипт) корректно обрабатывает данные, переданные из формы. Проверьте, что нет ошибок в PHP коде.

    6. Проверьте файлы CSS:
    - Иногда стили CSS могут перекрывать элементы формы или приводить к их некорректному отображению. Убедитесь, что CSS не мешает отправке формы.

    Если после выполнения всех этих шагов проблема не устранена, попробуйте использовать инструменты разработчика браузера для отслеживания сетевых запросов и проверки, действительно ли форма отправляется на сервер. Если форма отправляется на сервер, но данные не обрабатываются правильно, проблема может быть в обработке данных на стороне сервера.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно