0

更新: iFrame ソリューションが機能しました:

<form action="script.php" **target="aniFrame"** method="post" enctype="multipart/form-data">
  <label for="file">Package:</label>
  <input type="file" name="file" id="file"><br>
  <input type="submit" name="submit" value="Submit">
</form>

<iframe name="aniFrame"></iframe>

メールを送信するためにphpスクリプトを実行していますが、成功時にユーザーをリダイレクトしたくありません。これどうやってするの?(私のスクリプトには、ポップアップ ボックスが表示され、「成功!」と表示されます) ありがとうございます。

<form action="script.php" method="post" enctype="multipart/form-data">
  <label for="file">Package:</label>
  <input type="file" name="file" id="file"><br>
  <input type="submit" name="submit" value="Submit">
</form>

私のphpコードを追加する:

<?php
/**
* Simple example script using PHPMailer with exceptions enabled
* @package phpmailer
* @version $Id$
*/

require '../class.phpmailer.php';

try {
    $mail = new PHPMailer(true); //New instance, with exceptions enabled

    $body             = "Hello, World!";

    $mail->IsSMTP();                           // tell the class to use SMTP
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->Port       = 12;                    // set the SMTP server port
    $mail->Host       = "mail.blah.org"; // SMTP server
    $mail->Username   = "hello@bla.org";     // SMTP server username
    $mail->Password   = "pwd";            // SMTP server password

    //$mail->IsSendmail();  // tell the class to use Sendmail

    $mail->AddReplyTo("hi@hotmail.com","First Last");

    $mail->From       = "hi@hotmail.com";
    $mail->FromName   = "First Last";

    $to = "hi@gmail.com";

    $mail->AddAddress($to);

    $mail->Subject  = "First PHPMailer Message";

    $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap   = 80; // set word wrap

    $mail->MsgHTML($body);

    $mail->IsHTML(true); // send as HTML

    $mail->Send();
    echo "<script type='text/javascript'>alert('submitted successfully!')</script>";

    header("HTTP/1.0 204 No Response"); //added this, works but no popup...
} 
catch (phpmailerException $e) {
    echo $e->errorMessage();
}

?>

4

2 に答える 2

1

最も簡単なオプションは、サーバーが204 No ContentHTTP 応答を返すようにすることです。

targetまたは、フォームの属性を (i)frameに設定します。

または、JavaScript を使用してフォームのイベントをキャプチャしsubmit、デフォルトの動作を防ぎ、XMLHttpRequest を使用して HTTP リクエストを行います。

于 2013-11-01T06:47:15.993 に答える
0

送信ボタンのクリック時に ajax 呼び出しを送信します。そして、Ajax が成功すると、Success.. というポップアップ ボックスが表示されます。

于 2013-11-01T06:49:17.637 に答える