Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Проблема с отправкой обратной связи


Recommended Posts

Начал делать на сайте форму обратной связи 

Вот мой код :

 

---

 

 

<div class="vin-block" id="vin-block">
    <div class="container">
        <div id="vin-overlay">
            <div class="popup">
                <div class="close-popup" onclick="document.getElementById('vin-overlay').style.display='none';"></div>
                <div id="vin-welcome">
                    
                </div>
            </div>
        </div>
      <div class="title-vin-block" name="vin-block">
        <div class="main-title-vin-block">Якщо вам потрібно дізнатись про деталь автомобіля по VIN номеру, тоді звертайтесь до нас</div>
        <div class="subtitle-vin-block">Проглядаємо як Американські, так і Європейські авто</div>
      </div>
      <form method="post" action="" enctype="multipart/form-data" id="vin-form">
        <!-- Имя пользователя -->
        <div class="group-of-form">
          <label for="name" class="main-label">Як ми можемо до вас звертатись ?</label>
          <input id="name" type="text" name="name" class="form-input" value="" placeholder="Введіть ім'я" minlength="2"
            maxlength="30" required="required">
        </div>
        <!-- Номер пользователя -->
        <div class="group-of-form">
          <label for="number" class="main-label">На який номер телефону вам надіслати інформацію ? </label>
          <input id="number" type="text" name="number" required="required" class="form-input" value=""
            placeholder="Номер телефону" minlength="10" maxlength="14">
        </div>
      <!-- Vin номер машины -->
        <div class="group-of-form">
          <label for="vin" class="main-label">Введіть ваш VIN номер автомобіля до якого потрібна запчастина </label>
          <input id="vin" type="text" name="vin" required="required" class="form-input" value=""
            placeholder="Введть Vin номер вашої машини" minlength="15" maxlength="17">
        </div>
        <!-- Сообщение пользователя -->
        <div class="group-of-form">
          <label for="message" class="main-label">Ваші побажання до пошуку за VIN номером (не обов'язково)</label>
          <textarea id="message" name="message" class="form-control" rows="10"
            placeholder="Введіть ваші побажання" minlength="20" maxlength="500"
            ></textarea>
        </div>
         <div id="invalid-feedback"></div>
        <!-- Кнопка для отправки формы на сервер -->
        <div class="form-submit">
          <button id="sendForm">Надіслати</button>
        </div>
    </form>
    </div>
</div>
<script>
    //Send Form    
    $('#sendForm').on("click",function(){        
        var form = $("#vin-form").val().trim();
        var name = $("#name").val().trim();
        var phone = $("#number").val().trim();
        var vin = $("#vin").val().trim();
        var message = $("#message").val().trim();
        
        if(name == ""){
            $("#invalid-feedback").text("Невірно вказане ім'я (від 2 до 30 символів")
        }else if(phone == ""){
            $("#invalid-feedback").text("Невірно вказаний номер телефону (від 10 до 14 символів)")
        }else if(vin == ""){
            $("#invalid-feedback").text("Невірно вказаний VIN номер")
        }else{
             $("#invalid-feedback").text("")
                $.ajax({            
                    url:'index.php?route=information/contact/ajaxSend',            
                    data: form.serialize(),            
                    type:'POST',            
                    dataType:'json',
                    beforeSend: function(){
                        $("#sendForm").prop("disabled", true);
                    },
                    success: function(json){
                        if(json["error"]){                    
                            $("#sendForm").prop("disabled", false);                    
                            $("#vin-form").trigger("reset");                    
                            $("#vin-overlay").style.display = 'block';                  
                            $('#vin-welcome').text("Виникли проблеми з відправкой спробуйте ще раз або будь-ласка пізніше")                
                        }  
                        if(json["success"]){                    
                            $("#sendForm").prop("disabled", false);                    
                            $("#vin-form").trigger("reset");                    
                            $("#vin-overlay").style.display = 'block';                  
                            $('#vin-welcome').text("Дякую, ми зв'яжемось з вами найближчим часом")                
                        }            
                    }        
                })    
            }
        })
</script>

 

 

После в contact.php прописал функцию ajaxSend 

Вот код :

 

 

---

 

 

public function ajaxSend() {

        if (($this->request->server['REQUEST_METHOD'] == 'POST')) {
            
            $html = "<h3>Mail from:".$this->request->post['name']."</h3>";
            $html .= "<p>Phone number:".$this->request->post['phone']."</p>";
            $html .= "<p>VIN number:".$this->request->post['vin']."</p>";
            $html .= "<p>Message:".$this->request->post['message']."</p>";
            
             $mail = new Mail($this->config->get('config_mail_engine'));
            $mail->parameter = $this->config->get('config_mail_parameter');
            $mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
            $mail->smtp_username = $this->config->get('config_mail_smtp_username');
            $mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
            $mail->smtp_port = $this->config->get('config_mail_smtp_port');
            $mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');
  
            $mail->setTo($this->config->get('config_email'));
            $mail->setFrom($this->config->get('config_email'));
            $mail->setSender($this->request->post['name']);
            $mail->setSubject(html_entity_decode('Тема письма от '.$this->request->post['name'], ENT_QUOTES, 'UTF-8'));
            $mail->setHtml($html);
            $mail->setText(html_entity_decode($text, ENT_QUOTES, 'UTF-8'));
            $mail->send();
            $json['success'] = true;

            $this->response->setOutput(json_encode($json));

                

        }

    }

 

---

 

Но после перестаёт работать форма на странице контакты хотя эту форму я и не трогал.

 

Может кто-то сталкивался с подобными проблемами ? На форуме темы есть но решения не видать 

Надіслати
Поділитися на інших сайтах


Може увімкнути дебаг і подивитися, що де не так?

Надіслати
Поділитися на інших сайтах

image.png.5f740f0856a3e86e14c42d49b7815704.png

image.png.9994af4115dc886f56967f11958181fe.png

 

Уже есть прогрес, сменил код и про вводе в форму значений и нажав отправить то выводится "Сообщение успешно отпралено" Но на почте так ничего и нет, также когда и клиент регистрируется и отправляет сообщение со страницы контакты. В чём проблема, что на почту ничего не приходит. Может ли причиной быть настройка сео ?

 

Надіслати
Поділитися на інших сайтах


В 11.01.2023 в 17:43, Lucider105 сказав:

С дебагом не знаю как правильно отслеживать это 

То ваш код це копіпаст?

Надіслати
Поділитися на інших сайтах

Ні не копіпаст. Сделал отправку по смтп и начало отправляться со страницы контакты и со всего сайта начали приходить сообщения. А форма начала тоже отправлятся после некоторых изменений

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.