Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重定向到上一页并使用php保持所有填充的输入相同_Javascript_Php_Jquery_Html_Forms - Fatal编程技术网

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

Javascript 如何重定向到上一页并使用php保持所有填充的输入相同,javascript,php,jquery,html,forms,Javascript,Php,Jquery,Html,Forms,我正在为我的小项目使用php和javascript。我有一个表单,其中一个页面中有10个或更多输入。我的问题是,当用户填写文本框和文本区域等输入字段时,如果某些条件失败,单击提交按钮后返回同一页面。如何获取所有输入字段的值 例如 <form name="form1" method="post" action=""> <label for="textfield">Name</label> <input type="text" name="textf

我正在为我的小项目使用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中,但如果任何原因条件失败,我会立即将其重定向到具有此表单的同一页面。我希望所有字段都按原样填写

您不需要为此目的进行会话。您可以使用$\u 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>

名称

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

在将页面重定向到next.php之前,需要检查所有条件 若所有条件都为true,那个么页面将重定向到next.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>

名称

在next.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>

名称

在next.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.
    ?>

好吧,其他人已经回答了我的建议,但是如果您不习惯通过
$\u POST['element']显示,你也可以通过cookies来实现


用户提交表单时->设置数据cookies-->如果用户再次访问同一页面-->检查cookies是否已解决-->如果已解决,则显示,否则不-->完成

使用
会话
还可以使用ajax进行错误验证检查,如果需要在next.php中检查某些条件,则使用会话存储输入值。我有许多表单页,因此有很多输入fields@RayonDabre
isset
条件在哪里?返回到与您相同的页面后,我得到了空值错误后不应使用重定向。如果使用重定向,则需要将所有值存储到$\u会话,然后在输入字段值中使用$\u会话。发布您的完整代码。在这里,您需要在表单操作中使用相同的页面,然后这将起作用。从表单标记中删除action属性也会将其重定向到同一页面。