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

Почему не работает отправка формы?

Пока не знакома с php от слова совсем, но нужно отправить форму. Нашла самый простой шаблон, но все равно не работает.
Заранее спасибо за ответы.

<div class="form">
  <form action="mail.php" method="POST" id="form" class="form_body">
    <h1 class="form_title">Прошу перезвонить</h1>
    <div class="form_item">
      <label for="form_name" class="form_label">Имя</label>
      <input type="text" name="name" id="form_name" class="form_input _reg">
    </div>
    <div class="form_item">
      <label for="form_email" class="form_label">Email</label>
      <input type="text" name="email" id="form_email" class="form_input _reg _email">
    </div>
    <div class="form_item">
      <label for="form_phone_num" class="form_label">Номер телефона</label>
      <input type="text" name="phone_num" id="form_phone_num" class="form_input _reg">
    </div>
    <div class="form_item">
      <label for="form_massage" class="form_label">Сообщение</label>
      <textarea name="massage" id="form_massage" class="form_input"></textarea> 
    </div>
    <div class="form_item">
      <div class="checkbox">
        <input type="checkbox" name="check" class="checkbox_input _reg " id="form_checkbox">
        <label for="form_checkbox" class="checkbox_label"> напишите на what's up</label>
      </div>
    </div>
    <button type="submit" class="form_button">отправить</button>
  </form>
</div>


"use strict"

document.addEventListener("DOMContentLoaded", function(){

const form = document.getElementById('form');

form.addEventListener('submit', formsend);

  function formsend (e) {
    e.preventDefault();
    let error = formvalidate(form)
   
 
}


function formvalidate(form){
  let error = 0;
  let formreq = document.querySelectorAll("._reg");
  
  for(let index=0; index<formreq.length; index++){
     const input =  formreq[index];
     formRemoveError(input);     

    if(input.value === ""){    	
        formAddError(input);
        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");
}

});


<?php 

require_once('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->CharSet = 'utf-8';

$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone_num'];


//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.mail.ru';  																							// Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = '********@mail.ru'; // Ваш логин от почты с которой будут отправляться письма
$mail->Password = '**********'; // Ваш пароль от почты с которой будут отправляться письма
$mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров

$mail->setFrom('annahrulkovayandex.ru@mail.ru'); // от кого будет уходить письмо?
$mail->addAddress('******@yandex.ru');     // Кому будет уходить письмо 
//$mail->addAddress('ellen@example.com');               // Name is optional
//$mail->addReplyTo('info@example.com', 'Information');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');
//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Заявка с тестового сайта';
$mail->Body    = '' .$name . ' оставил заявку, его телефон ' .$phone. '<br>Почта этого пользователя: ' .$email;
  • Вопрос задан
  • 164 просмотра
Подписаться 2 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@Siverius
Мне кажется, вот тут
function formsend (e) {
    e.preventDefault();
    let error = formvalidate(form)
   
 
}

не хватает функции отправки.
Сейчас вы просто проверяете, чтобы данные были не пустыми, но никуда не шлёте их
Ответ написан
Ваш ответ на вопрос

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

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