2011-02-19 10 views
4

長い話を短くするには、[OK]:jQuery/PHPメールで簡単に送信できますか?

はJavaScript:スムーズ

jQuery("submit").click(function() { 

    var address = jQuery("#mail").val(); 
    var title = jQuery("#title").val(); 
    var name = jQuery("#name").val(); 
    var mail = jQuery("#email").val(); 
    var message = jQuery("#msg").val(); 

    alert(address); 
    alert(title); 
    alert(name); 
    alert(mail); 
    alert(message); 

    jQuery.post("sendmail.php", 
    {address: address, title: title, name: name, mail: mail , message: message}, 
    function(data){ 
     jQuery("#email").html("<div id='sent'><p>Thank you for the message.</p><p>We will reply as soon as possible.</p></div>"); 
     alert('sent'); 
    });  

return false;  
}); 

作品(警告のすべての値を示している)、決して "送られた" のdivを示しています。実際のメールを送信することはありません。

sendmail.phpは、適切な場所にあり、それはコードだ次のとおりです。

<?php 

// getting variables from form 

$emailTo = trim($_REQUEST['address']); 
$subject = trim($_REQUEST['title']);; 
$name = trim($_REQUEST['name']); 
$emailFrom = trim($_REQUEST['mail']); 
$message = $_REQUEST['message']; 

// prepare email body text 

$Body = "You have a message from: "; 
$Body .= $name; 
$Body .= "\n"; 
$Body .= "\n"; 
$Body .= $message; 

// send prepared message 

$sent = mail($emailTo, $subject, $Body); 

//callback for jQuery AJAX 

if ($sent){ 
    echo 'sent'; 
} 
else{} 

print_r($_REQUEST); die(); 
?> 

更新jQueryのコードも動作しません:

jQuery("#contact-form-send").click(function() {  

    var address = jQuery("#contact-form-mail-address").val(); 
    var title = jQuery("#contact-form-mail-title").val(); 
    var name = jQuery("#contact-form-name").val(); 
    var mail = jQuery("#contact-form-email").val(); 
    var message = jQuery("#contact-form-message").val(); 

    var data = "&address=" + address + "&title=" + title + "&name=" + name + "&mail=" + mail + "&message=" + message; 

    jQuery.ajax({ 
    type: "POST", 
    url: "sendmail.php", 
    data: data, 
    success: function(){ 
      jQuery(".email-us").html("<div id='email-sent'><p>Thank you for the message.</p><p>We will reply as soon as possible.</p></div>");  
    } 
}); 

return false;  
}); 
+0

@ kjy112確かに、私はそれに取り組んでいます:)私は完全に最初の投稿を更新しました。おそらく問題を見つけることができるでしょうか?しかしまず、私はあなたの方法を.ajaxでチェックするつもりです。 – anonymous

+0

あなたは何かを入れて、あなたのelse文を閉じました。おそらく 'print_r($ _REQUEST);'? – kjy112

+0

@ kjy112は、sendmail.phpへのアクセス権がないため、何も変わりません。「submit」をクリックするだけで、divが表示されます。これ以上何もない。 sendmail.phpへのリダイレクトはありません。 – anonymous

答えて

5

あなたはアヤックスを使用する必要があります。それはずっと簡単です。ここではPHP、Ajaxを、&のjQueryを使用してメールを送信することで、ここで簡単なチュートリアルです:

Send mail using PHP, Ajax and jQuery

それは、これに似たものになります。あなたのPHPファイルでも

var data = "address=" + address + "&title=" + title + "&name=" + name + "&mail=" + mail + "&message=" + message; 
//or however u want to format your data 

$.ajax({ 
    type: "POST", 
    url: "sendmail.php", 
    data: data, 
    success: function(phpReturnResult){ 
      alert('Success: ' + phpReturnResult); 
      jQuery(".email-us").html("<div id='email-sent'><p>Thank you for the message.</p><p>We will reply as soon as possible. PHP Script's return result: " + phpReturnResult + "</p></div>");  
    }, 
    error: function(errormessage) { 
      //you would not show the real error to the user - this is just to see if everything is working 
      alert('Sendmail failed possibly php script: ' + errormessage); 
    } 
}); 

を、あなたがいるように見えますmail関数を2回使用しました。

+0

Af!問題は「成功」ではありません! "email-sent"ありがとうございました... "テキスト:(それはポイントです。すべてうまく動作し、すべてのデータが取得され、リンクが作成され、sendmail.phpファイルが適切な場所にあります(正直言って、どこでも)何もありません! – anonymous

+0

@anonymousこのエラー関数を添付して表示するかどうかを確認します。問題があるあなたのPHPスクリプト。しかし、そうであれば、それはajaxが成功したことを意味します。 – kjy112

+0

@anonymous成功または失敗のアラートが追加されたので、あなたのajaxが失敗しているか、PHPスクリプトがあるかを知ることができます。がんばろう – kjy112

関連する問題