2

私はここで完全に迷子になっています。ページを離れずにPHPでメールを送信したい。しかし、データをPHPファイルに取得して電子メールで送信する方法がわかりません。そして、私がそこに着くと、私は道に迷うでしょう。したがって、PHPファイルがどのように見えるかについてのヘルプも素晴らしいでしょう。これがフォームです。

<table id="dialog">
        <tr><td><input type="text" id="name" name="name" placeholder="Your Name" size="20" class="tbow" /></td></tr>
        <tr><td><input type="text" id="email" name="email" placeholder="Your Email" size="20" class="tbow" /></td></tr>
        <tr><td><input type="text" id="number" name="number" placeholder="Your Phone Number" size="20" class="tbow" /></td></tr>
        <tr><td><textarea id="message" name="message" rows="5" cols="25" class="tbow" placeholder="Your Message"></textarea></td></tr>
        <tr><td><input type="button" value="Send!" onclick="senem();" id="sender" /></td></tr>
</table>

そして、私はこれを試しました...

function senem(){
        var name = document.getElementById("name").value;
        var email = document.getElementById("email").value;
        var number = document.getElementById("number").value;
        var message = document.getElementById("message").value;
        $.ajax({
            type: "POST",
            url: "mmaa.php",
            data: "name=" + name + "&email=" + email + "&number=" + number = "&message=" + message,
            success: alert("It works!!!");
        });
 }
4

2 に答える 2

5

コピーアンドペーストの仕事として意図されていませんが、それを自分で書くための構成要素を提供する必要があります。

あなたのjavascript関数;

function senem() {
    jQuery.ajax({
        type: "POST",
        url: "http://location/of/script.php",
        data: { var1: "foo", var2: "bar" },
    });
}

そしてphpで;

<?php
    $var1 = $_POST['var1'];
    $var2 = $_POST['var2']; //do something interesting with these

    $to = "john@example.com";
    $subject = "Wooo Email!";
    $message = "Sorry John, you're fired.";

    mail($to, $subject, $message, "From: system@yourdomain.com\r\n");
?>

jQueryを使用してクライアント側に割り当てるvar1とvar2の値(例:$( "#name")。val();)。また、Apacheと一緒にSMTPサーバーをインストールして構成する必要があります(Eximを使用し、あなたを助けるためにフレンドリーなオタクを見つけてください)。

PS:\ r \ nはSMTPがHTTPといくつかの構文を共有しているためです。それは重要ではありませんが、mailコマンドはおそらくそれらなしでは機能しません。

于 2012-04-22T01:03:41.377 に答える
1

ボタンからonlickイベントを削除し、目立たない方法で実行します

<input type="button" value="Send!" id="sender" />  

脚本

$(function(){

 $("#sender").click(function(){
    $.post("yourserver.php", 
                          { name: $("#name").val(),
                            email:$("#email").val(),
                            number : $("#number").val(), 
                            message=$("#message").val()
                          },
                         function(result){
                            //Show the result from server page to the user. 
                            alert(result)
                         });    
  });
});

PHPページにこの値を受け入れさせ、適切な検証の後にメールを送信してください。いくつかのメッセージ(「例:Eメール送信済み」)を返信すると、result変数で使用できるようになります。

jQueryライブラリがページにロードされていることを確認してください。

jQuery postがどのように機能するかをよりよく理解するには、このページをお読みくださいhttp://api.jquery.com/jQuery.post/

于 2012-04-22T01:06:08.643 に答える