2013-05-19 11 views
-1

У меня возникли проблемы с отправкой этой формы сообщения. Я могу получить информацию для отправки в файл .php, но электронная почта не отправляет, может ли кто-нибудь мне помочь?Отправить форму с проблемами ajax

здесь является JQuery

$('form.contact').on('submit', function() { 

    var that = $(this), 
     url  = that.attr('action'), 
     type = that.attr('method'), 
     data = {}; 

    that.find('[name]').each(function() { 
     var that = $(this); 
      name = that.attr('name'); 
      value = that.val(); 

     data[name] = value; 
    }); 

    $.ajax({ 
     url: url, 
     type: type, 
     data: data, 
     success: function(response) { 
     console.log(response); 
     } 
    }); 

    return false; 
}); 

и вот PHP

include 'config.php'; 

// Email Submit 
if (isset($_POST['email']) && isset($_POST['name']) && isset($_POST['message'])){ 

    //send email 
    mail(EMAIL_ADDRESS, "Contact Form: ".$_POST['name'], 
    $_POST['message'], "From:" . $_POST['email']); 

} 

EMAIL_ADDRESS является константой, которая устанавливается администратором.

и при необходимости здесь является HTML

<div id="contact_form"> 
    <form action="admin/submit.php" method="post" class="contact"> 
     <input class="fullwidth" type="text" name="name" placeholder="Your Name" /> 
     <input class="fullwidth" type="email" name="email" placeholder="Email Address" /> 
     <textarea type="text" name="message" placeholder="Message"></textarea> 
     <input id="submit" type="submit" value="Submit" /> 
     <div id="submit_triangle"></div> 
    </form> 
</div> 
+0

У вас есть ошибки? Есть ли причина, по которой вы дважды устанавливаете '' 'для разных' $ (this) '? Может возникнуть проблема, которую я предполагаю. – Zim84

+2

Можете ли вы проверить, что вы можете отправить * любую * почту с вашего сервера? Это не может быть проблемой jQuery. – mg007

+0

@ mg007 Как я могу это проверить? – zachstarnes

ответ

0

Ну, ваш код, кажется, хорошо. Но у вас есть почтовый сервер, установленный в системе. Проверьте настройки почтового сервера, если у вас есть

http://php.net/manual/en/function.mail.php говорит, что mail возвращает TRUE, если почта была успешно принята к доставке, в противном случае FALSE.

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

0

Если вы были в состоянии передавать данные на .php, то он должен быть стороной php, с которой вы сталкиваетесь. Включите обработчик ошибок через php.ini, и он должен сообщить вам, что у вас есть проблема с php.

В файле PHP с функциями электронной почты в нем, добавьте эти строки в самом начале сценария:

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', true); 

//your exiting script // 
?> 

Затем повторно запустить сценарий, и если он все еще не работает, PHP должен echo проблема php для вас для отладки.

+0

Это не решит проблему OP. Вы должны добавить его в качестве комментария. – ShuklaSannidhya

+0

@ShuklaSannidhya: Спасибо. Я стою исправлено, это нужно ввести как комментарий, а не отвечать. – Faron

+0

@Faron это не дает мне ошибку, если я делаю однострочный тест в отдельном файле – zachstarnes

Смежные вопросы