2016-05-06 55 views
-1

我有一個小問題。 我有一個網站,我有一個聯繫表格。我有一個form.php文件,它使它的工作,並在這個文件中,我有回聲調用一個js函數,這使得一個彈出窗口告訴你「感謝你提交」,而不是帶我到這個消息的另一個頁面。問題是當我點擊確定在這個彈出窗口,它重定向到一個空的頁面form.php。php重定向到空白頁

下面是代碼:

<?php 

$name = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Email: $email \n\n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form TP Czech"; //This is the email subject in " " 
$mailheader = "From: $email \r\n"; 



mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); 
echo '<script>popUp()</script>'; 


?> 
+0

你期待什麼?您正在提交到form.php,並在那裏顯示一個彈出窗口。當你點擊彈出窗口時,你仍然在form.php,這是你說的空。 – yBrodsky

+1

你不在這裏的任何地方定義'popUp()'。請記住,表單請求會觸發新的頁面請求。一旦重定向,以前的HTML或JavaScript都不會在那裏。 – mario

+0

你爲什麼不提醒消息。例如, 'if(mail($ recipient,$ subject,$ formcontent,$ mailheader)){echo「」} else {echo「 「}' –

回答

1

要顯示你需要有這樣的代碼彈出裏面的內容。

if(mail($recipient, $subject, $formcontent, $mailheader)){ 
     echo '<script> 
     var myWindow = window.open("", "MsgWindow", "width=200,height=100"); 
     myWindow.document.write("<p>Message sent!</p>");</script>'; 
     }else{ 
     echo '<script> 
     var myWindow = window.open("", "MsgWindow", "width=200,height=100"); 
     myWindow.document.write("<p>Message Not sent!</p>");</script>'; 
     } 

可以使用open()方法調用彈出窗口。

高級集成:
也可以使用setTimeout()功能和close()功能一段時間後,關閉打開的窗口。

//This will close the popup window after 10 sec. 
    setTimeout(function(){ 
     myWindow.close(); 
    }, 10000); 
相關問題