2012-07-26 54 views
-3

我用於此示例的表單已循環使用了一段時間,因爲我沒有知識和時間來學習PHP。它有效,但不完全像我想要的那樣。例如,當某人在表單中輸入姓名和電子郵件並提交時,應該將用戶重定向到freepage.html。但是,它會使用已輸入的信息「閃爍」實際的「freepage.php」。通常持續1-2秒,然後重定向開始。PHP表單在檢查輸入之前重定向

我遇到的另一個問題是,如果用戶沒有在該freepage.php中輸入信息「所有字段都是強制性」警告顯示,只有這一次頁面不會在屏幕上「閃爍」一秒鐘,那裏顯示警告,並且修復它的唯一方法是單擊瀏覽器中的「後退」按鈕。

有人能指出我怎麼能做出這樣的形式比較好一些....

這是PHP文件看起來像

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <script type="text/javascript" src="jquery-1.3.2.min.js"></script> 
      <script src="http://www.google.com/jsapi"></script> 
      <script type="text/javascript">google.load("jqueryui", "1.5.2");</script> 
      <? 
     if($_POST['name']!="" and $_POST['email']!=""){ 


    $headers = "From: Sender"; 
    $message = 
      strtoupper($_POST['name'])." 
      ".strtoupper($_POST['email'])." 
      "; 
    echo str_replace("\n","<br />", $message); 
    $headers2 = "From: Sender <[email protected]>\nContent-Type: text/plain;        charset=UTF-8; format=flowed\nMIME-Version: 1.0\nContent-Transfer-Encoding: 8bit\nX-Mailer: PHP\n"; 
    $message2 = " 
    Hello ".($_POST['name'])." 

      "; 

    mail("$_POST[email]", "Thanks for entering", $message2, $headers2); 


    $myFile = "info-file.txt"; 
    $fh = fopen($myFile, 'a') or die("can't open file"); 
    $stringData =   "$_POST[name]*$_POST[email]*".$_SERVER['REMOTE_ADDR']."*".date("d-m-Y H:i")." 
      "; 
    fwrite($fh, $stringData); 
    fclose($fh); 


    ?> 

    echo '<script>document.location="freepage.html"; </script>'; 

    <? 
} else { 
    echo "All fields are mandatory"; 
    ?> 
    <script language="javascript"> 
    alert("All fields are mandatory"); 
    </script> 
    <? 
} 
    ?> 

形式如下

 <form method="post" action="freepage.php" name="popups" id="popups"> 
     <fieldset> 
     <label for=name accesskey=U ><span class="required">*</span> Name</label> 
     <br /> 
     <input name="name" type="text" id="name" size="30" value="" /> 
     <br /> 
     <label for=email accesskey=E ><span class="required">*</span> Email</label> 
     <br /> 
     <input name="email" type="text" id="email" size="30" value="" /> 
     <br /> 
     <input type="submit" value="Submit" id="submit" name="submit" class="button" /> 
     </fieldset> 
     <br /> 
     </form> 
+9

「因爲我沒有學習PHP的知識或時間「,所以僱傭了一個人。 – 2012-07-26 08:51:38

+0

感謝@Dagon感謝您的幫助,非常聰明的答案。 – TM23 2012-07-26 09:05:23

回答

0

它「閃爍」的原因是因爲您必須等待服務器在重定向之前發送郵件。

對於警告:「所有字段都是強制性的」。

  • 如果表單處於同一頁面(freepage.php),表單將顯示 事件(如果顯示)。
  • 如果表單不在同一頁面上,只需添加一個重定向(html鏈接 或javascript位置)或在php代碼後插入表單。在for循環來檢查字段爲空或不那麼表單操作使用PHP
    自我這時如果檢查的部分已經完成內部如果用頭重定向到其他頁面
+0

感謝您的回覆。抱歉,名稱混亂,但頁面用戶也將被重定向到「freepage.html」,freepage.php只是表單的代碼。我瞭解「眨眼」部分,但有沒有辦法在重定向開始之前顯示警告字段警告? – TM23 2012-07-26 09:13:10

+0

通常情況下,php代碼與窗體位於同一頁面,因此使用「回顯」警告位於屏幕頂部,因此不需要重定向。 在你的代碼中有一個JavaScript警報,所以只需在警報後添加一個重定向,當用戶點擊「OK」時,他將被重定向。 else { echo「所有字段都是必填項」; ?> <? } – Done 2012-07-27 06:43:07