2016-08-03 5 views
0

У меня проблема с моей формой контакта AJAX, все, что я пробовал, не удалось. Я всегда получаю ошибку от jQuery Part if(html==0).Контактная форма AJAX не работает

Кто-то, пожалуйста, помогите, не можете найти проблему. Спасибо!

JQuery Часть: action.js

$(function() { 

    /* EMAIL VALIDATOR */ 
    function isEmail(email) { 
     var pattern = new RegExp(/^(("[\w-+\s]+")|([\w-+]+(?:\.[\w-+]+)*)|("[\w-+\s]+")([\w-+]+(?:\.[\w-+]+)*))(@((?:[\w-+]+\.)*\w[\w-+]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][\d]\.|1[\d]{2}\.|[\d]{1,2}\.))((25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\.){2}(25[0-5]|2[0-4][\d]|1[\d]{2}|[\d]{1,2})\]?$)/i); 
     return pattern.test(email); 
    } 

    /* CONTACT */ 
    $('#contact-submit').click(function() { 
     var firstname = $('#contact-firstname').val(); 
     if(!firstname.trim()) { 
      $('#contact-firstname').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie Ihren Vornamen ein!</span>'); 
      return false; 
     } 
     var lastname = $('#contact-lastname').val(); 
     if(!lastname.trim()) { 
      $('#contact-lastname').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie Ihren Nachnamen ein!</span>'); 
      return false; 
     } 
     var email = $('#contact-email').val(); 
     if(!email.trim()) { 
      $('#contact-email').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie Ihre E-Mail ein!</span>'); 
      return false; 
     } else { 
      if(!isEmail(email)) { 
       $('#contact-email').focus(); 
       $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie eine g&uuml;ltige E-Mailadresse ein!</span>'); 
       return false; 
      } 
     } 
     var phone1 = $('#contact-phone1').val(); 
     if(!phone1.trim()) { 
      $('#contact-phone1').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie Ihre Landesvorwahl ein!</span>'); 
      return false; 
     } 
     var phone2 = $('#contact-phone2').val(); 
     if(!phone2.trim()) { 
     $('#contact-phone2').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie Ihre Telefonnummer ein!</span>'); 
      return false; 
     } 
     var phone = phone1+' (0) '+phone2; 
     var subject = $('#contact-subject').val(); 
     if(!subject.trim()) { 
      $('#contact-subject').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie einen Betreff ein!</span>'); 
      return false; 
     } 
     var message = $('#contact-message').val(); 
     if(!message.trim()) { 
      $('#contact-message').focus(); 
      $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Bitte geben Sie eine Nachricht ein!</span>'); 
      return false; 
     } 

     $.ajax({ 
      type: 'POST', 
      url: 'action.php', 
      data: 'contact=1&firstname='+firstname+'&lastname='+lastname+'&email='+email+'&phone='+phone+'&subject='+subject+'&message='+message, 
      dataType: 'html', 
      success: function(html) { 
       if(html==0) { 
        $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Nachricht konnte nicht gesendet werden!</span>'); 
       } else if(html==1) { 
        $('#contact-result').html('Danke f&uuml;r Ihre Nachricht!'); 
       } else { 
        alert('Fehler beim Senden!'); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 

PHP часть: action.php

<? if($_POST['contact']) { 
    $contactEmail = '[email protected]'; 

    $firstname = $_POST['firstname']; 
    $lastname = $_POST['lastname']; 
    $email  = $_POST['email']; 
    $phone  = $_POST['phone']; 
    $subject = $_POST['subject']; 
    $message = $_POST['message']; 

    $mailSubject = 'KONTAKTANFRAGE '.$subject; 

    $mailMessage = $message.'\r\n'.'\r\n'; 
    $mailMessage .= 'Vorname: '.$firstname.'\r\n'; 
    $mailMessage .= 'Nachname: '.$lastname.'\r\n'; 
    $mailMessage .= 'E-Mail: '.$email.'\r\n'; 
    $mailMessage .= 'Telefonnummer: '.$phone; 

    $mailHeader = 'MIME-Version: 1.0'.'\r\n'; 
    $mailHeader .= 'Content-type:text/html;charset=UTF-8'.'\r\n'; 
    $mailHeader .= 'From: Kontkatformular'.'\r\n'; 
    $mailHeader .= 'Reply-To: '.$email.'\r\n'; 

    $sendMail = mail($contactEmail, $mailSubject, $mailMessage, $mailHeader); 

    if($sendMail) { 
     echo 1; 
    } else { 
     echo 0; 
    } 
} ?> 
+0

PHP функция почты не будет работать, если чистая связь off.Please проверить его и скажите нам – Debojyoti

+0

я тестирую его в Интернете –

+0

может быть ошибка происходит из-за того HTML ключевое слово. Пожалуйста, проверьте его, используя другое имя переменной. – Debojyoti

ответ

0

Попробуйте изменить свои данные initilization

$.ajax({ 
      type: 'POST', 
      url: 'action.php', 
      data: {contact: 1, firstname:firstname,lastname:lastname, email:email, phone:phone, subject:subject, message:message}, 
      dataType: 'html', 
      success: function(html) { 
       if(html==0) { 
        $('#contact-result').html('<span class="error"><i class="fa fa-exclamation-triangle fa-fw"></i>&nbsp;Nachricht konnte nicht gesendet werden!</span>'); 
       } else if(html==1) { 
        $('#contact-result').html('Danke f&uuml;r Ihre Nachricht!'); 
       } else { 
        alert('Fehler beim Senden!'); 
       } 
      } 
     }); 
+0

получить такую ​​же ошибку с этим –

+0

GOT IT! Просто нужно было поместить адрес электронной почты отправителя в почтовый ящик. Спасибо за вашу помощь! –

0

Я хотел бы предложить вы используете json для анализа данных.

Так что ваш Javascript код будет выглядеть следующим образом:

$.post('action.php', 
{ 
    'contact' : 1, 
    'firstname' : firstname, 
    'lastname' : lastname 
}).done(function(response) 
{ 
    var json = JSON.parse(response); 

    if(json.status == false) 
     /* do something */ 

    else if(json.status == true) 
     /* do something */ 

    else /* This might never happen.. */ 
     /* do something else */ 
}); 

И ваш PHP код будет выглядеть следующим образом:

$status = $sendMail == TRUE ? TRUE : FALSE; 

echo json_encode(array 
(
    'status' => $status 
)); 
+0

Это не работает, это дает мне предупреждение (последнее условие) –

+0

Невозможно. Переменная $ status принимает только TRUE или FALSE, поэтому в вашем коде есть ошибки. – Linesofcode

+0

ПОЛУЧАЙТЕ! Просто нужно было поместить адрес электронной почты отправителя в почтовый ящик. Спасибо за вашу помощь! –

0

Ваши заголовки должны заканчиваться символами новой строки. Одиночные кавычки будут просто выставлять действительные символы \r\n, а двойные кавычки преобразуют их в новые строки. Ваша почта, вероятно неудачу из-за плохих заголовков, поэтому настроить их так:

$mailHeader = 'MIME-Version: 1.0'."\r\n"; 
$mailHeader .= 'Content-type:text/html;charset=UTF-8'."\r\n"; 
$mailHeader .= 'From: Kontkatformular'."\r\n"; 
$mailHeader .= 'Reply-To: '.$email."\r\n"; 

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

+0

По-прежнему то же, но спасибо за вашу помощь. –

+0

GOT IT! Просто нужно было поместить адрес электронной почты отправителя в почтовый ящик. Спасибо за вашу помощь! –

0

Это решение:

$mailHeader = 'MIME-Version: 1.0'."\r\n"; 
$mailHeader .= 'Content-type:text/html;charset=UTF-8'."\r\n"; 
$mailHeader .= 'From: Kontkatformular <[email protected]>'."\r\n"; 
$mailHeader .= 'Reply-To: '.$email."\r\n"; 
Смежные вопросы