2015-01-10 44 views
-2

我剛建立了一個簡單的聯繫表單,我面臨一個問題,它在同一個文件和同一頁面中預覽它。在同一頁面中的HTML表單,驗證和預覽

在這種編碼中,有3種類型劃分:

  1. HTML表單
  2. PHP驗證
  3. 第二變體頁面是一個預覽頁面。在完成驗證後觸發

文件名稱form.php。

下面是代碼:

<?php 
// validate data 
$fnameErr = $lnameErr = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") {  
    if (empty($_POST["fname"])) { 
     $fnameErr = "First name is required"; 
    } 
elseif (preg_match("/^[A-Z][a-zA-Z -]+$/", $_POST["fname"]) === 0) { 
    $fnameErr = "First name must contain letters and spaces only"; 
} 
else { 
$fname = $_POST["fname"]; 
} 
    if (empty($_POST["lname"])) { 
     $lnameErr = "Last name is required"; 
    } 
elseif (preg_match("/^[A-Z][a-zA-Z -]+$/", $_POST["lname"]) === 0) { 
    $lnameErr = "Last name must contain letters and spaces only"; 
} 
    else { 
     $lname = $_POST["lname"]; 
    } 

    } 



?> 
    // 1st variant that will be form 
<title>Untitled 1</title> 
<style type="text/css"> 
.style1 { 
    border-collapse: collapse; 
    border: 1px solid #000000; 
    background-color: #99FF99; 
} 
.style3 { 
    text-align: center; 
    font-size: large; 
} 
.style4 { 
    color: #0000FF; 
} 
.style5 { 
    text-align: center; 
} 
.style6 { 
    background-color: #FEFECB; 
} 
.error { 
    color: #FF0000; 
} 
</style> 
<script src="jquery-1.10.2.js"></script> 
</head> 
<body> 
<table style="width: 600px" cellspacing="0" cellpadding="25" align="center" class="style1"> 
    <tr> 
    <form method="POST" 
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">  <td> 
     <div class="style3"> 
      :: <strong><span class="style4">STUDENT INFORMATION</span> </strong> 
      ::</div> 
     <table style="width: 100%"> 
        </table> 
     <table style="width: 100%" class="style6" cellpadding="5"> 
      <tr> 
       <td style="height: 30px; width: 106px">First Name&nbsp;</td> 
       <td style="width: 14px; height: 30px;" class="style5"><strong>:</strong></td> 
       <td style="width: 204px; height: 30px;"><input name="fname" type="text" value="<?php echo htmlspecialchars($fname);?>">&nbsp;</td> 
       <td style="height: 30px"><span class="error"><?php echo $fnameErr;?></span></td> 
      </tr> 
      <tr> 
       <td style="width: 106px">&nbsp;</td> 
       <td style="width: 14px" class="style5"><strong></strong></td> 
       <td style="width: 204px">&nbsp;</td> 
       <td>&nbsp;</td> 
      </tr> 
      <tr> 
       <td style="width: 106px">Last Name</td> 
       <td style="width: 14px" class="style5"><strong>:</strong></td> 
       <td style="width: 204px"><input name="lname" type="text" value="<?php echo htmlspecialchars($lname);?>"></td> 
       <td><span class="error"><?php echo $lnameErr;?></span></td> 
      </tr>  
     </table> 
     </td> 
     </form> 
    </tr> 
</table> 
</body> 
</html> 


//--------this code below i want to become as preview page , 2nd variant page that will be switch on after validation complete --------- 
<body> 

<table style="width: 600px" cellspacing="0" cellpadding="25" align="center" class="style1"> 
    <tr> 
    <td> 
     <div class="style3"> 
     :: <strong><span class="style4">STUDENT INFORMATION</span> </strong> 
     ::</div> 
     <table style="width: 100%"> 
     </table> 
     <table style="width: 100%" class="style6" cellpadding="5"> 
     <tr> 
      <td style="height: 27px; width: 106px">First Name&nbsp;</td> 
      <td style="width: 14px; height: 27px;" class="style5"><strong>:</strong></td> 
      <td style="width: 204px; height: 27px;"><?php echo $fname ?> </td> 
      <td style="height: 27px"><span class="error"></span></td> 
     </tr> 
     <tr> 
      <td style="width: 106px">&nbsp;</td> 
      <td style="width: 14px" class="style5"><strong></strong></td> 
      <td style="width: 204px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Last Name</td> 
      <td style="width: 14px" class="style5"><strong>:</strong></td> 
      <td style="width: 204px"> <?php echo $lname ?></td> 
      <td><span class="error"></span></td> 
     </tr> 
     <tr> 
      <td style="width: 106px">&nbsp;</td> 
      <td style="width: 14px" class="style5"><strong></strong></td> 
      <td style="width: 204px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px">&nbsp;</td> 
      <td style="width: 14px" class="style5"><strong></strong></td> 
      <td style="width: 204px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     </table> 
    </td> 
    </tr> 
</table> 
</body> 
</html> 

, 任何反饋非常感謝,謝謝!

+0

你在找什麼樣的反饋?因爲它是你的代碼只是缺少'if'和'else'。這幾乎是你需要添加的。 – Halcyon

+0

如果您在此處發佈您的代碼,而不僅僅向我們提供鏈接,我們將不勝感激。 – Afsa

+0

也許這應該張貼到http://codereview.stackexchange.com/ –

回答

0

首先改變你:

<form method="POST" 
action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 

<form method="POST" action=""> 

第二點 - 你要決定什麼是你的條件,以顯示頁面的第二個變種。

例如:對HTML部分開始(行號27-28)

3日前

if (isset($POST['fname']) && $_POST['fname']==$fname 
    && isset($POST['lname']) && $_POST['lname']==$lname) {$setPageVariant = 'noform';} else {$setPageVariant = 'form';}; 

,就把這行。在你的HTML代替:

<form method="POST" action=""> 

<?php if ($setPageVar=='form') { ?> <form method="POST" action=""> <?php } ?> 

和相同條件,但與其他的投入。例如更換:

<input name="fname" type="text" value="<?php echo htmlspecialchars($fname);?>"> 

<?php if ($setPageVar=='form') { ?> 
    <input name="fname" type="text" value="<?php echo htmlspecialchars($fname);?>"> 
<?php } else { echo $fname; } ?> 

我希望你有一個想法,可以在項目:-)祝你好運繼續前進!

+0

嗨,感謝您的反饋,我真的很感激,我很想要知道如何切換或切換同一頁面中的第二個變體頁面,有人說使用Ajax包裝,有人說使用JavaScript,我真的不知道該怎麼做。你有什麼想法? – Razif

+0

我已經回答你的問題了,你是否實現了我的代碼更改? – Alex

+0

是的,我得到布爾錯誤,沒關係,也許它是由於我的xampp版本 – Razif