如何在不使用JQuery或AJAX的情况下将任何类型的数据从PHP脚本页返回到HTML页面?

时间:2016-06-19 12:28:16

标签: php html

我目前正在尝试制作HTML表单页面[ main.html ],该页面将采用以下输入:

姓名,电子邮件和联系电话

提交数据时,它将转到PHP脚本[ validate.php ],并在其中进行验证。比如名称是否包含任何无效的字符集或数字等。

如果验证失败,则应返回错误消息,例如“数据验证失败”。 如果验证成功,PHP页面应将数据返回到 main.html ,其中需要显示收到的数据,并要求用户再次确认

用户确认数据后,它会将数据发送到另一个PHP脚本文件[ store.php ],以便存储在文本文件中[例如的 UserDb.txt ]。

我对PHP和HTML非常陌生,不了解JQuery。我可以以某种方式准备 main.html store.php ,但对 validate.php 页面感到非常困惑。

请告诉我如何将PHP页面[validate.php]中的数据发送回HTML页面[main.html]以请求混淆? < / p>

请不要提出涉及JQuery和AJAX的解决方案。 我可以在互联网上找到很多网页,但我找不到任何特别针对这种情况的解决方案。我希望可以从PHP脚本中将数据发送回HTML页面。

3 个答案:

答案 0 :(得分:1)

表单操作标记用于该操作。让我们看一个例子。这里有形式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.For错误使用css将其显示为红色,如下面的error.css;

.error{
color:red
}

TL; DR:将表单操作设置为validation.php。保持简单。

答案 1 :(得分:0)

开始并设置会话变量:

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'];

答案 2 :(得分:0)

您也可以尝试

将main.html重命名为main.php,然后在表单标记上方包含validate.php,以显示表单上方的错误。因此,您的表单操作将是自我或空白

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

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

但如果没有错误,那么从validate.php你可以使用

重定向到index.php以进行用户确认
header('Location: index.php?name='.$name);

可以使用$_GET['name'];

访问name的值