2013-02-22 11 views
1

Когда я тестирую его, я получаю всплывающее сообщение с сообщением о его отправке, но также получаю сообщение от части ajax, в котором говорится об ошибке, хотя все содержимое приходит ко мне по электронной почте успешно ,Форма контакта не работает [PHP/AJAX]

Я думаю, что одна проблема заключается в том, что есть два разных сообщения отправки, исходящие из PHP и AJAX. Нужен ли PHP? Помощь будет принята с благодарностью.

UPDATE: «что-то ошибка неправильно»

Сообщение об ошибке я получаю ответ ошибки из Аякса после представить, говоря Я также получаю всплывающее сообщение о том, что он был правильно отправлен с эхом от PHP.

UPDATE* * Живая версия: http://pieceofmedesigns.com/test/contact.html

Вот AJAX:

$(function(){ 

$("#Submit").click(function(){ 

$.ajax({type:'POST', url: './php/mailer.php', data:$('#frmContact').serialize(), success: function(response) { 
$("#spanMessage").html('Please Wait...'); 


if(parseInt(response)>1) 
    { 
    $("#spanMessage").html('<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Well done!</strong> Your message has been sent.</div>'); 
    } 
    else{ 
    alert(response); 
    $("#spanMessage").html('<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Error! </strong> Somthing Wrong</div>'); 
    } 


}}); 


}); 

Вот PHP Mailer:

<?php session_start(); 
if(isset($_POST['Submit'])) { 
$youremail = '[email protected]'; 
$fromsubject = 'Test Email'; 
$txtName = $_POST['txtName']; 
$txtEmail = $_POST['txtEmail']; 
$txtSubject = $_POST['txtSubject']; 
$txtText = $_POST['txtText']; 
$to = $youremail; 
$mailsubject = 'Masage recived from'.$fromsubject.' Contact Page'; 
$body = $fromsubject.' 

The person that contacted you is '.$txtName.' 
E-mail: '.$txtEmail' 

Message: 
'.$txtText.' 

|---------END MESSAGE----------|'; 
echo "Thank you fo your feedback. I will contact you shortly if needed.<br/>Go to <a  href='/index.php'>Home Page</a>"; 
          mail($to, $subject, $body); 
} else { 
echo "You must write a message. </br> Please go to <a href='/contact.php'>Contact Page</a>"; 
} 
?> 

Вот форма:

<form action="" method="post" id="frmContact"> 
<h5>Whats your Name?</h5> 
<input name="txtName" type="text" class="txbx" value="Name" /><br /> 
<h5>Whats your Email?</h5> 
<input name="txtEmail" type="text" class="txbx" value="Email" /><br /> 
<h5>Email Subject?</h5> 
<input name="txtSubject" type="text" class="txbx" value="Subject" /><br /> 
<div class="erabox"> 
<h5>Message to us</h5> 
<textarea name="txtText" cols="" rows="" class="txbx era" value="Message" ></textarea>   <br /> 
<input name="" type="button" class="sendbtn" value="Send Message" align="left" id="btnSend"/> 
</form> 
+0

Я не вижу в вашей форме id "Отправить" – sanj

+0

Можете ли вы добавить точный текст сообщения в свой вопрос? спасибо –

+0

Вы также можете поместить кнопку в форму. При этом вы уверены, что форма не будет отправлена. – Perry

ответ

0

Вы забыли назвать кнопку и сделать его идентификатор в Submit

<input name="Submit" type="button" class="sendbtn" value="Send Message" align="left" id="Submit"/> 
      ^// here was the mistake.             ^here also 

проблема здесь

if(parseInt(response)>1) 
{ 
$("#spanMessage").html('<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Well done!</strong> Your message has been sent.</div>'); 
} 
else{ 
alert(response); 
$("#spanMessage").html('<div class="alert alert-error"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>Error! </strong> Somthing Wrong</div>'); 
} 

условие будет ВСЕГДА падать в другую часть, потому что вы используете parseInt(response)>1 condition.Instead use truefalse концепция в php и проверка true/false в javascript.

+0

Изначально у меня была Подпись, но она все еще не удалась, поэтому я оставил ее, потому что это, казалось, не имело значения. – Warren

+0

@ Уоррен, вы не установили идентификатор кнопки 'Submit'. и вызывая событие «Отправить» щелчком. Измените его и попробуйте. –

+0

@ Уоррен см. Отредактированный ответ. Он имеет решение. –

0
$("#Submit").click(function(){} 

вместо этой линии,

попробовать

$("#frmContact").submit(function(){} 

Пожалуйста Смотрите jQuery Submit Api для получения дополнительной информации. Аналогичный пример.

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