Контактная форма не работает [PHP / AJAX]

Когда я тестирую его, я получаю всплывающее окно с сообщением о его отправке, но я также получаю сообщение от части ajax о том, что произошла ошибка, хотя все содержимое успешно приходит мне по электронной почте.

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

ОБНОВЛЕНИЕ:

Сообщение об ошибке, которое я получаю, - это ответ об ошибке от ajax после отправки, в котором говорится: «Ошибка, что-то не так». Я также получаю всплывающее окно о том, что оно было отправлено правильно с эхом от PHP.

ОБНОВЛЕНИЕ** Текущая версия: http://pieceofmedesigns.com/test/contact.html

Вот АЯКС:

$(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>

person Warren    schedule 22.02.2013    source источник
comment
Я не вижу в вашей форме id Отправить   -  person sanj    schedule 22.02.2013
comment
не могли бы вы добавить точное сообщение об ошибке в свой вопрос? благодарю вас   -  person Aamir Mahmood    schedule 22.02.2013
comment
Вы также можете поместить кнопку вне формы. Этим вы уверены, что не будет отправки по форме.   -  person Perry    schedule 22.02.2013


Ответы (2)


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

вместо этой строки

пытаться

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

См. JQuery Submit API для получения дополнительной информации. Есть аналогичный пример.

person Darshan Thanki    schedule 22.02.2013

вы забыли назвать кнопку и сделать ее идентификатор равным 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. Вместо этого используйте концепцию true false в php и проверьте true/false в javascript.

person Yogesh Suthar    schedule 22.02.2013
comment
Изначально у меня был Submit, но он все равно не работал, поэтому я его не использовал, потому что он не имел значения. - person Warren; 22.02.2013
comment
@Warren, вы не установили идентификатор кнопки на Submit. и вызывая событие щелчка Submit's. Измените его и попробуйте. - person Yogesh Suthar; 22.02.2013
comment
Этот сценарий пришел с шаблоном. То, что вы упомянули, выше моего опыта, лол - person Warren; 22.02.2013