0

有没有一种快速简便的方法可以让这个 form.php 代码在提交后关闭窗口而不是重定向?如果无法做到这一点,我可以处理重定向,但希望关闭窗口,因为原始表单正在新窗口中打开。下面的代码:

<?php
if (!empty($_POST)) {

// Used for later to determine result
$success = $error = false;

// Object syntax looks better and is easier to use than arrays to me
$post = new stdClass;

// Usually there would be much more validation and filtering, but this
// will work for now.
foreach ($_POST as $key => $val)
    $post->$key = trim(strip_tags($_POST[$key]));

// Check for blank fields
if (empty($post->First) OR empty($post->Last) OR empty($post->Email))
    $error = true;

else {

    // Get this directory, to include other files from
    $dir = dirname(__FILE__);


    // Get the contents of the HTML email into a variable for later
    ob_start();
    require_once($dir.'/html.php');
    $html_message = ob_get_contents();
    ob_end_clean();

    // Load the SwiftMailer files
    require_once($dir.'/swift/swift_required.php');

    $mailer = new Swift_Mailer(new Swift_MailTransport()); // Create new instance     of SwiftMailer

    $message = Swift_Message::newInstance()
                   ->setSubject('Hospitality Recycling Program Calculator Results') // Message subject
                  ->setTo(array('bsmith@cleantheworld.org', $post->Email =>$post-> First ))  // Array of people to send 

                   ->setFrom(array('bsmith@cleantheworld.org' => 'Clean the World')) // From:
                   ->setBody($html_message, 'text/html');






    // Send the email, and show user message
    if ($mailer->send($message))
        $success = true;
    else
        $error = true;

}

}
header("location: http://www.cleantheworld.org/newpartner.asp"); 
?>
4

1 回答 1

0

我同意@jeroen 的观点,更好的解决方案是使用 AJAX,但您可以在重定向的头部输出一些 javascript 来关闭页面。同样,我不建议将此作为解决问题的好方法,但只要在用户浏览器中启用了 javascript,它就会起作用。

<script type="text/javascript>
    self.close();
</script>
于 2013-03-20T14:32:10.453 回答