1

テストすると、送信を示すポップアップが表示されますが、すべてのコンテンツが電子メールで正常に送信されたにもかかわらず、エラーがあるという ajax 部分からのメッセージも表示されます。

問題の 1 つは、PHP と AJAX の両方から送信される 2 つの異なる送信メッセージがあることだと思います。その場合、PHPは必要ですか?助けていただければ幸いです。

アップデート:

表示されるエラー メッセージは、送信後の ajax からのエラー応答で、「エラーが発生しました」というメッセージが表示されます。PHPからのエコーで正しく送信されたことを示すポップアップも表示されます。

更新* * ライブ バージョン: 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 = 'myemail@gmail.com';
$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>
4

2 に答える 2

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条件を使用しているため、条件は常にelse部分に分類されます。代わりに、true false概念を使用してjavascriptphpをチェックインします。true/false

于 2013-02-22T09:30:19.277 に答える
0
$("#Submit").click(function(){}

この行の代わりに、

試す

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

詳細については、 jQuery Submit APIを参照してください。同様の例があります。

于 2013-02-22T09:30:35.020 に答える