Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


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));

                

        }

    }

 

---

 

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

 

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

Link to comment
Share on other sites


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

Link to comment
Share on other sites

image.png.5f740f0856a3e86e14c42d49b7815704.png

image.png.9994af4115dc886f56967f11958181fe.png

 

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

 

Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.