2013-02-22 74 views
1

当我测试它,我得到一个弹出称其提交,但我也从阿贾克斯部分得到一个消息,说有一个错误,即使所有的内容通过电子邮件来我成功。联系表不工作[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梅勒:

<?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

我没有在你的形式看是“提交” – sanj 2013-02-22 09:27:53

+0

可以请你在你的问题中添加确切的错误信息?谢谢 – 2013-02-22 09:30:03

+0

您也可以将按钮放在窗体外面。通过这个,你肯定不会有表格提交。 – Perry 2013-02-22 09:30:04

回答

0

你忘了名称的按钮并使其id来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条件,因此请使用truefalse概念php并在javascript中检查true/false

+0

最初,我在那里提交了提交,但仍然失败,所以我将它排除了,因为这似乎没有关系。 – Warren 2013-02-22 09:38:43

+0

@Warren你没有设置按钮的ID为'Submit'。并调用'Submit's'点击事件。改变它并尝试。 – 2013-02-22 09:42:37

+0

@Warren查看编辑答案。它有解决方案。 – 2013-02-22 09:48:20

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

,而不是这一行,

尝试

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

请有关更多信息,请参见jQuery Submit Api。有一个类似的例子。