【问题标题】:PHP : Redisplay form with inputted values if submits failPHP:如果提交失败,则重新显示带有输入值的表单
【发布时间】:2019-12-05 03:40:13
【问题描述】:

我的用户名是主键。当用户提交表单并发现用户名重复时,sql 将失败。如果提交失败,我想用用户输入的值重新显示表单。我该怎么做?

我尝试使用 if(isset) 方法和 windows.location.href 回到同一页面,它会清除插入的值。

我还尝试在没有 window.location.href 的情况下仅回显警报脚本,它会清除所有内容。

如果提交失败,如何在文本框中重新显示带有插入值的表单?

这是我的代码。


include('sql_connect.php');

if (isset($_POST['submit'])) {
  // code...

  $username = $_POST['username'];
  $password = $_POST['password'];

  $sql = "INSERT INTO `test`(`Username`, `Password`) VALUES ('$username' , '$password') ";
  if (!mysqli_query($connection , $sql)){

      echo"<script>alert('Failed');</script>";

  }
  else {
    echo"<script>alert('$type INSERTED');window.location.href='test3.php';</script>";
  }
}
else {
  // code...


 ?>

<form class="" action="test.php" method="post">

Username : <input type="text" name="username" value=""> <br>
Password : <input type="text" name="password" value="">

<button type="submit" name="submit">Submit</button>
</form>

<?php

} ?>

【问题讨论】:

  • 您可以在前端使用验证来避免冗长的过程。
  • 不要重定向到别处,只需输出表单再次 - 这次使用您刚刚收到的值预填充文本输入字段的value 属性。
  • 这能回答你的问题吗? PHP Keep entered values after validation error
  • @04FS 是的!谢谢你。我真的不知道谷歌的确切内容,这就是我问的原因。谢谢!

标签: php


【解决方案1】:

您可以使用 session 来设置 session 和 html 字段中的其他字段

    if (isset($_POST['submit'])) {
session_start();
$_SESSION['email']=$_POST['email'];
 }
<input type="email" name="email" value="<?php if(isset($_SESSION['email'])){echo 
$_SESSION['email'];}?>">

【讨论】:

  • “你可以使用 session” - 或者你可以只使用 $_POST['email'] ,在这种情况下你已经拥有了……
猜你喜欢
  • 2021-08-02
  • 1970-01-01
  • 2011-10-12
  • 2018-02-12
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2016-03-08
  • 1970-01-01
相关资源
最近更新 更多