如何使用 php 重定向到上一页并保持所有填充的输入相同


How to redirect to previous page and keep all filled input same using php

我正在为我的小项目使用 php 和 javascript。我有一个表单,其中一个页面中有 10 个或更多输入。我的问题是当用户填写文本框和文本区域等输入字段时,如果某些条件失败,则单击提交按钮后返回同一页面。如何获取所有输入字段的值
例如

<form name="form1" method="post" action="">
  <label for="textfield">Name</label>
  <input type="text" name="textfield" id="textfield"><br/>
  <label for="textfield2">Phone</label>
  <input type="text" name="textfield2" id="textfield2"><br/>
  <label for="textarea">Address</label>
  <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea><br />
  <input type="submit" name="button" id="button" value="Submit">
</form>

我喜欢将其提交到 next.php,但如果有任何原因条件失败,我会立即将其重定向到具有此表单的同一页面。我喜欢按原样填写所有字段。

您可以使用 jquery 或 ajax 进行验证(检查条件)。

在将页面重定向到下一步之前,您需要检查所有条件.php如果所有条件都为真,则页面将重定向到下一个.php否则页面保持不变。

您可以在 php 中使用会话。

<?php
session_start();
?>
<form name="form1" method="post" action="">
  <label for="textfield">Name</label>
  <input type="text" value="<?php echo $_SESSION['textfield_name']; ?>" name="textfield" id="textfield"><br/>
  <label for="textfield2">Phone</label>
  <input type="text" value="<?php echo $_SESSION['textfield_phone']; ?>" name="textfield2" id="textfield2"><br/>
  <label for="textarea">Address</label>
  <textarea name="textarea" id="textarea" cols="45" rows="5"><?php echo $_SESSION['textarea_address']; ?></textarea><br />
  <input type="submit" name="button" id="button" value="Submit">
</form>

接下来.php

<?php
session_start();
$_SESSION['textfield_name'] = $_POST['textfield_name'];
$_SESSION['textfield_phone'] = $_POST['textfield_phone'];
$_SESSION['textarea_address'] = $_POST['textarea_address'];
// Your conditions here...
redirect("prev.php"); // Redirect to form page.
?>

如果您不想使用会话,则可以在 url 中传递值。

<form name="form1" method="post" action="">
      <label for="textfield">Name</label>
      <input type="text" value="<?php echo $_GET['textfield_name']; ?>" name="textfield" id="textfield"><br/>
      <label for="textfield2">Phone</label>
      <input type="text" value="<?php echo $_GET['textfield_phone']; ?>" name="textfield2" id="textfield2"><br/>
      <label for="textarea">Address</label>
      <textarea name="textarea" id="textarea" cols="45" rows="5"><?php echo $_GET['textarea_address']; ?></textarea><br />
      <input type="submit" name="button" id="button" value="Submit">
    </form>

在下一步中.php文件

<?php
    $textfield_name = $_POST['textfield_name'];
    $textfield_phone = $_POST['textfield_phone'];
    $textarea_address = $_POST['textarea_address'];
    // Your conditions here...
    redirect("prev.php?textfield_name=$textfield_name&textfield_phone=$textfield_phone&textarea_address=$textarea_address"); // Redirect to form page.
    ?>

您不需要会话来实现此目的。您可以使用 $_POST 数组,如下所示:

<form name="form1" method="post" action="">
  <label for="textfield">Name</label>
  <input type="text" name="textfield" id="textfield" value="<?php echo isset($_POST['textfield']) ? $_POST['textfield'] : ''; ?>"><br/>
  <label for="textfield2">Phone</label>
  <input type="text" name="textfield2" id="textfield2" value="<?php echo isset($_POST['textfield2']) ? $_POST['textfield2'] : ''; ?>"><br/>
  <label for="textarea">Address</label>
  <textarea name="textarea" id="textarea" cols="45" rows="5"><?php echo isset($_POST['textarea']) ? $_POST['textarea'] : ''; ?></textarea><br />
  <input type="submit" name="button" id="button" value="Submit">
</form>

好吧,其他人已经回答了我的建议,但是如果您不习惯通过$_POST['element'];显示,您也可以通过cookie执行此操作!

When user submits form -> set cookies of data --> if user again visits the same page--> check if cookies settled --> if settled, show , else don't -- > done !!!