Javascript 如何重定向到上一页并使用php保持所有填充的输入相同
我正在为我的小项目使用php和javascript。我有一个表单,其中一个页面中有10个或更多输入。我的问题是,当用户填写文本框和文本区域等输入字段时,如果某些条件失败,单击提交按钮后返回同一页面。如何获取所有输入字段的值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
例如
<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@RayonDabreisset
条件在哪里?返回到与您相同的页面后,我得到了空值错误后不应使用重定向。如果使用重定向,则需要将所有值存储到$\u会话,然后在输入字段值中使用$\u会话。发布您的完整代码。在这里,您需要在表单操作中使用相同的页面,然后这将起作用。从表单标记中删除action属性也会将其重定向到同一页面。