0

友達、これは簡単なように思えますが、私は空白を描いています。リンクをメールで送信したい。電子メール アドレスを入力して [送信] をクリックすると、受信トレイに電子メールが表示されます。PHP は外部ファイルでなければなりません。だから私のページには...

<form action="http://www.myotherdomain.com/email.php" method="post">Email: 
    <input type="text" name="email" />
    <input type="submit" />
</form>

私のphpファイルには...

<?php
    $to = $_POST["email"];
    $subject = "Test mail";
    $message = "Hello! This is a simple email message.";
    $from = "address@someisp.com";
    $headers = "From:" . $from;
    mail($to,$subject,$message,$headers);
?> 

正常に動作し、メールを送信しますが、送信ボタンを押すと、email.php ページに移動します。今見ているページから離れたくない。ボタンを押して、ページを離れることなくメールを送信したいだけです。ボーナスは、メールが送信されたときに表示されるメッセージです。

ありがとうございました!

4

4 に答える 4

0

ページをロードせずに実行したい場合は、AJAX を使用する必要があります。フォームの送信によってページの読み込みが発生しても問題ない場合は、2 つのオプションがあります。電子メール ロジックを現在のページに配置してページを元のページに戻すか、mail.php スクリプトからユーザーの元のページにリダイレクトを実行します。

于 2012-08-16T17:56:37.393 に答える
0

ターゲットと Iframe を追加できます。

<form action="http://www.myotherdomain.com/email.php" target="aframe" method="post">Email: 
    <input type="text" name="email" />
    <input type="submit" />
</form>

<iframe src="about:blank" style="display:none" name="aframe" id="aframe"></iframe>

ajax は必要ありません。これは JavaScript を使用していないユーザーでも機能しますが、「メールが送信されました」などのメッセージが役立つでしょう。email.php からアラートをエコーするだけです。

echo "<script type='text/javascript'>alert(\"Email sent\");</script>";

これを行う方法の本当に簡単な例。

于 2012-08-16T17:59:37.540 に答える
0

AJAXを使用する2つのオプションがあります(jQueryが簡単な解決策になります)

$('form').submit(function(){
    $.ajax({
        type: 'POST',
        url: 'http://www.myotherdomain.com/email.php',
        data: $(this).serialize(),
        success: function(data) {
            alert('Message sent!');
        }
    });
    return false;
});

または、メールの終了後にリダイレクトを実行します。

header('Location: http://www.yourdomain.com');
exit;
于 2012-08-16T18:02:12.883 に答える
0

Jquery/Ajax でこれを行う必要があります。以下は、email.php を呼び出す現在のページで動作する単純なスクリプトです。

<script src="http://code.jquery.com/jquery-1.7.min.js"></script>

体内で:

<script type="text/javascript" >
function process(email){
$.post("email.php",{email:email},function(result){
alert(result); 
});

};
</script>

<img src="whatever.png" onClick="process('their_email@example.com');">
于 2012-08-16T18:03:22.257 に答える