在表单提交后在同一弹出窗口中显示成功消息

时间:2016-09-21 08:43:20

标签: javascript html

在用户提交表单后,无法找到保持弹出式/灯箱窗口打开的方法。我是PHP的初学者。现在我只是让它发出一条消息,表示"谢谢你"

如果您想看到它,请转到http://druvocals.com/dv 然后点击右上角的信封图标。

基本上,我希望用户点击"发送"后弹出窗口保持不变然后只是有一点谢谢你的消息,然后可能是一个按钮,说"关闭"然后他们就会回到主页上。这是我的表单的PHP代码。

   <?php

$EmailFrom = "DruVocals";
$EmailTo = "dru.sing.vocals@gmail.com";
$Subject = "DruVocals";
$Name = Trim(stripslashes($_POST['name'])); 
$Email = Trim(stripslashes($_POST['email'])); 
$Message = Trim(stripslashes($_POST['text'])); 

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "\n";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "\n";

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
  print "thanks";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>

2 个答案:

答案 0 :(得分:0)

自&#34; popup&#34;不是实际弹出窗口(即单独的浏览器窗口/选项卡),在提交表单浏览器后转到表单操作URL。

一个常见的解决方案是按下按钮以不提交实际表单,但收集必要的数据并通过javascripts ajax调用将其发送到服务器。这样最终用户看到的一切都保持不变。您可以显示感谢信息,错误消息,关闭按钮以及其他任何内容,具体取决于您使用ajax从服务器获得的响应。

所有这些与PHP几乎没有关系。

答案 1 :(得分:-1)

只需使用某个变量重定向到主页。 像:

header('Location: http://druvocals.com/dv/?sended='.$success);

到主页:

<? if( isset($_GET['sended']) && $_GET['sended'] == true ){ ?>
 Some html, like the email sender form popup, just with the message what you want.
<?}?>