這可能有一個簡單的解決方案,但我不是很精通php!基本上我想提交一個表格,並且用戶可以返回一個感謝覆蓋圖像而不刷新。我已經設法得到這個工作,但現在表格驗證不能正常工作...PHP格式錯誤問題
我需要使我的覆蓋只出現在表單驗證成功後,如果它不成功我需要顯示錯誤,而不是謝謝覆蓋...
我知道我可以使用這種形式的AJAX,但我不想依靠JavaScript!
在驗證工作的一分鐘,但圖像被在它的上面疊加......
這是PHP代碼:
<?php
if($_POST['formSubmit'] == "Submit")
{
$errorMessage = "";
if(empty($_POST['formName']))
{
$errorMessage .= "<li>You forgot to enter your name</li>";
}
if(empty($_POST['formTown']))
{
$errorMessage .= "<li>You forgot to enter your town</li>";
}
$varName = $_POST['formName'];
$varTown = $_POST['formTown'];
$varAge = $_POST['formAge'];
$varEmail = $_POST['formEmail'];
$varOne = $_POST['hidden-one'];
$varTwo = $_POST['hidden-two'];
$varThree = $_POST['hidden-three'];
$varFour = $_POST['hidden-four'];
$varFive = $_POST['hidden-five'];
if(empty($errorMessage))
{
$fs = fopen("mydata.csv","a");
fwrite($fs,"\n" . $varName . ", " . $varTown . ", " . $varAge . ", " . $varEmail . ", " . $varOne . $varTwo . $varThree . $varFour . $varFive);
fclose($fs);
}
}
?>
這是我的HTML(與PHP代碼):
<?php
if (isset($_POST['formSubmit'])) {
print "<div class=\"thank-you\"><a href='enter.php'><img src='images/thankyou-overlay.png'/></a></div>\n";
}
?>
<div id="mainContainer">
<p>Just complete your entry details below.</p>
<?php
if(!empty($errorMessage)) {
echo("<p>There was an error with your form:</p>\n");
echo("<ul>" . $errorMessage . "</ul>\n");
}
?>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" target="_self">
<div class="inputContainer">
<label class="text" name="name">Full Name:</label>
<input type="text" class="box" name="formName" value="<?=$varName;?>">
</div>
... more html inputs...
</form>
有一個小麻煩理解這一點。您能否詳細說明do_stuff.aspx和not_submitted_yet.aspx頁面上的內容。 – kala233
基本上,當你在頁面中放置一個iframe時,你可以在你的表單中發佈你的表單(這樣主頁面不會重新加載)。所以在我的例子中,頁面do_stuff.aspx和post數據將被調用,但在iframe中! – Wesley