簡體   English   中英

如何在不使用JQuery或AJAX的情況下將任何類型的數據從PHP腳本頁面返回到HTML頁面?

[英]How to return any kind of data from PHP Script Page to HTML Page without using JQuery or AJAX?

我目前正在嘗試制作一個HTML表單頁面[ main.html ],它將接受以下輸入:

姓名,電子郵件和聯系電話

提交數據后,它將轉到將對其進行驗證的PHP腳本[ validate.php ]。 例如名稱是否包含任何無效的字符集或數字等。

如果驗證失敗,則應返回錯誤消息,例如“數據驗證失敗”。 如果驗證成功,則PHP頁面應將數據返回到main.html ,在該處需要顯示接收到的數據,並要求用戶再次進行確認

用戶確認數據后,會將其發送到另一個PHP腳本文件[ store.php ],以存儲在文本文件中(例如, UserDb.txt )。

我對PHP和HTML非常陌生,不了解JQuery。 我可以以某種方式准備main.htmlstore.php,但對於validate.php頁面卻很困惑。

請告訴我如何將數據從PHP頁面[validate.php]發送回HTML頁面[main.html]進行確認?

請不要建議涉及JQuery和AJAX的解決方案。 我可以在Internet上找到許多針對該網頁的網頁,但是我找不到針對這種情況的任何解決方案。 我希望可以將數據從PHP腳本發送回HTML頁面。

表單操作標簽用於該操作。 讓我們看一個例子。 這是我們的表格main_form.php;

<form action="validation.php" method="post">
<h2>Form</h2>
<span class="error">* required field.</span>
Name:
<input name="name" type="text" value="">
<span class="error">* <?php echo $nameError;?></span>
E-mail:
<input name="email" type="text" value="">
<span class="error">* <?php echo $emailError;?></span>
Gender:
<input name="gender" type="radio" value="female">Female
<input name="gender" type="radio" value="male">Male
<span class="error">*<?php echo $genderError;?></span>
Website:
<input name="website" type="text" value="">
<span class="error"><?php echo $websiteError;?></span>
Comment:
<textarea cols="40" name="comment" rows="5">
</textarea>
<input  name="submit" type="submit" value="Submit">
</form>

現在讓我們看看我們如何在validation.php上進行驗證;

<?php
// Initialize variables to null.
$nameError ="";
$emailError ="";
$genderError ="";
$websiteError ="";
// On submitting form below function will execute.
if(isset($_POST['submit'])){
if (empty($_POST["name"])) {
$nameError = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$nameError = "Only letters and white space allowed";
}
}
if (empty($_POST["email"])) {
$emailError = "Email is required";
} else {
$email = test_input($_POST["email"]);
// check if e-mail address syntax is valid or not
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
$emailError = "Invalid email format";
}
}
if (empty($_POST["website"])) {
$website = "";
} else {
$website = test_input($_POST["website"]);
// check address syntax is valid or not(this regular expression also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteError = "Invalid URL";
}
}
if (empty($_POST["comment"])) {
$comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderError = "Gender is required";
} else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
//php code ends here
?>

如果有錯誤,此腳本會將錯誤返回到我們的main_form.php。對於錯誤,請使用css將其顯示為紅色,如error.css所示;

.error{
color:red
}

TL; DR:將表單操作設置為validation.php。 把事情簡單化。

要啟動並設置會話變量:

session_start(); //at top of page

$_SESSION['name_of_field'] = $_POST['name_of_field']; //do checks on the post data!

要使用會話變量:

session_start(); //at top of page

$my_new_value = $_SESSION['name_of_field'];

您將獲得可變數據。

或者您可以通過URL發送數據
用PHP寫這個

 header('Location: http://yoursite.com/page2.php?name='.$name.'&email='.$email);

並得到

$name =  $_GET['name'];
$email =  $_GET['email'];

您也可以嘗試

將main.html重命名為main.php,然后在form標記上方包含validate.php,以在form上方顯示錯誤。 因此,您的表單動作將是self或空白

<?php include "validate.php"; ?>

<form action ="" method ="post"... >

但是,如果沒有錯誤,則可以從validate.php重定向到index.php,以使用進行用戶確認

header('Location: index.php?name='.$name);

名稱值可以使用$_GET['name'];訪問$_GET['name'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM