2012-12-26 91 views
1

Ik要驗證後防止字段重置。我搜索了一些主題,但我不能在我的代碼中實現它。驗證時保留表單值

if($form_view == true) { 
echo ''; 
if($error != '') { 
    echo '<strong><font color="#FF0000">Fout:</font></strong><br />'.$error.'<br />'; 
} 

echo '<form method="POST" action="'.$filename.'" style="border:0px; margin:0px; padding:0px;"> 
Voornaam 
<br /> 
<input type="text" name="voornaam" maxlength="50" id="input_contact" style="width: 200px; value="'.(isset($_POST['voornaam']) ? $_POST['voornaam'] : '').'"> 
<br /> 
Achteraam 
<br /> 
<input type="text" name="achternaam" maxlength="50" id="input_contact" style="width: 200px; value="'.(isset($_POST['achternaam']) ? $_POST['achternaam'] : '').'"> 
<br /> 
Adres 
<br /> 
<input type="text" name="adres" maxlength="50" id="input_contact" style="width: 400px; value="'.(isset($_POST['adres']) ? $_POST['adres'] : '').'"> 
<br /> 
Postcode <h7><i><small>(1234 AB)</small></i></h7> 
<br /> 
<input type="text" name="postcode" maxlength="7" id="input_contact" style="width: 100px; value="'.(isset($_POST['postcode']) ? $_POST['postcode'] : '').'"> 
<br /> 
Woonplaats 
<br /> 
<input type="text" name="woonplaats" maxlength="50" id="input_contact" style="width: 200px; value="'.(isset($_POST['woonplaats']) ? $_POST['woonplaats'] : '').'"> 
<br /> 
Telefoonnummer <h7><i><small>(0123-456789)</small></i></h7> 
<br /> 
<input type="text" name="telefoonnummer" maxlength="11" id="input_contact" style="width: 100px; value="'.(isset($_POST['telefoonnummer']) ? $_POST['telefoonnummer'] : '').'"> 
<br /><br /> 

如果你能給我一個關於如何在一個領域實現這個例子。

非常感謝

+0

是否最後'echo'ed字符串結束某處? – Havelock

+0

「現場重置」是什麼意思?而且,你是否使用javascript進行了驗證(也許是使用jQuery驗證),還是使用php進行驗證?或兩者? –

回答

1

如果該信息不是他們降落在那麼$ _ POST變量將不包含此信息的特定頁面進行。

它的快速和骯髒的是將$ _SESSION []中提交的信息保存爲一個數組。

當表單被提交時,除了做任何你現在正在做的事情之外,你還需要在接收腳本中保存提交到會話中的信息。

if ($_POST['submit']) { 
// repeat or configure as desired to save submitted fields into Session 
$_SESSION['form_info']['email_address'] = $_POST['email_address']; 
} 

在表單頁面本身,你會使用以下

if (isset($_SESSION['form_info'])) { 
// You'll want to most likely consider filtering these using appropriate functions. 
<input type="text" name="email_address" maxlength="50" id="email_address" style="width: 200px; value="<?php if (isset($_SESSION['form_info']['email_address']) { $_SESSION['form_info']['email_address']; } ?>"> 

} 
0

的形式操作變量$文件名指的是這個特殊的PHP文件或在確認發生別的地方?如果表單動作發生在別的地方,Moylin的答案就是你的解決方案(使用$ _SESSION)。否則,如果可能的話,在這裏進行驗證是合理和簡單的。正如你所做的那樣,將$ _POST回顯到值字段應該足夠了(如果你想要短代碼,你甚至不需要那裏的三元操作)。

<form method="POST" action="thisPhpFile.php" > 

value ="'. @$_POST['voornaam'] .'" 

在驗證部分(呼應形式)之前,你自然要檢查所有的錯誤,必填字段等。如果一切是有效的只是點到用戶想要的位置。沿着這些線的東西:

if(isset($_POST['mySubmit'] { 
    //check errors/validate 
    if($valid == true) { 
    Header("Location: yourLocation.php"); 
    } 
} 
else { 
    //echo your form here 
} 
+0

謝謝大家。我仍然不明白如何實現這一點。 @ art2是的,我得到了一切在一個PHP文件。我用http://forum.fnl.nl/showthread.php?t=1836的代碼也許會有所幫助。非常感謝! – user1930171

相關問題