目前我阻止重新提交重定向标头位置。但我认为页面加载速度较慢,因为去一个地方只是为了重定向到另一个地方是浪费时间。它为该过程增加了一个额外的步骤。
我还有哪些与PHP相关的选项?
是否有办法在提交时将表单数据发送到另一个文件/页面而不会“重定向”到该页面?并且可以在不需要重定向的情况下执行此操作,因为您从一开始就没有从那里发送过。只需将“表单数据”传递给另一页。
也可以打开其他解决方案,只要它是PHP。
小心
答案 0 :(得分:0)
使用include将PHP包含在您将在没有重定向的情况下处理表单的其他页面中。
include 'YourFile.php';
这是一个结构性的例子。
<?php
include 'functions/db.php';// your db connection to process the form
$error['last'] = '';
$error['first'] = '';
$error['user'] = '';
if(isset($_POST['addUser'])){ // Check if form is submitted
$LastImp = $_POST['LastImp'];
$FirstImp = $_POST['FirstImp'];
$UserImp = $_POST['UserImp'];
if($LastImp == '' || $FirstImp == '' || $UserImp == ''){// Check if inputs are empty.
if($streetImp == ''){$error['street'] = 'Must enter a Street';}
if($LastImp == ''){$error['last'] = 'Must enter a Last Name';}
if($FirstImp == ''){$error['first'] = 'Must enter a First Name';}
if($UserImp == ''){$error['user'] = 'Must enter a Username';}
$error['alert'] = "All Fields are Required.";
include 'views/employee_front.php';
exit();
} else {
//Process the Form.
}}
include 'YourFile.php';// the php reads this first because all the other code is conditional upon submit.
这是YourFile Page
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>Untitled 1</title>
<body>
<form method="post">
<div class="rowContainer">
<label class="User">Username</label>
<input class="Userimp" name="UserImp" type="text"></div>
<div class="error"><?php echo $error['user']; ?></div>
<div class="rowContainer">
<label class="First">First Name</label>
<input class="Firstimp" name="FirstImp" type="text"></div>
<div class="error"><?php echo $error['first']; ?></div>
<div class="rowContainer">
<label class="Last">Last Name</label>
<input class="Lastimp" name="LastImp" type="text"></div>
<div class="error"><?php echo $error['last']; ?></div>
<button class="addSubmitA" type="submit" name="addUser">Add User</button>
</form>
答案 1 :(得分:0)
在表单标记<form method="POST" action="submit-data.php">
的action属性中提供,并在submit-data.php中,在成功提交数据后给出header('Location:form.php')
。它没有重新提交浏览器重新加载数据,对我来说很好。这是防止页面重新加载时重新提交数据的一种方法。第二种方法是使用Ajax Jquery方法提交数据。