我有一个用户提交表单的页面,它会转到单独的PHP脚本。脚本完成后,header()会将用户重定向回他们所在的页面。现在我想要做的是,如果脚本中存在错误或某些条件,将用户重定向到同一页面,但是一旦它们作为警告消息到达那里就会显示Javascript警报。我可以将一些变量附加到URL并使用$ _GET检查它,但我认为可能有一种更简单的方法...也许有一些POST数据,或类似的东西? 感谢
答案 0 :(得分:2)
您可以使用会话在服务器端执行此操作:
“显示表单”php脚本创建表单并将其返回给用户。
用户填写并将其提交给另一个接收表单数据的php脚本“接收脚本”,并注意到错误,缺少数据等。
“接收脚本”将错误消息存储在会话中(作为项目错误)并重定向到“show form”脚本。
“show form”脚本(与步骤1中相同)实际上不仅仅是创建表单。它还:
PS。以上流程是rails处理表单的形式和重新显示的方式。
更新:感谢@zod指出我没有清除会话中的错误项目。
答案 1 :(得分:1)
如果遇到错误,请将错误状态存储到$ _SESSION数组,然后将浏览器重定向到原始页面。在原始页面上有一个脚本来检查是否设置了错误状态。如果是,则触发javascript警报或您想要的任何处理。
在公共页脚模板(或原始页面的页脚)上,检查并清除错误数组,以便在用户移动到其他页面或重新加载当前页面时不会持续存在。
processor.php
<?php
if($something == $iswrong){
$_SESSION['errors']['error5301'] = 1;
session_write_close();
header("Location: http://www.example.com/originalpage.php");
exit;
} ?>
originalpage.php
<!-- Header -->
<?php
if(isset($_SESSION['errors']['error5301']) && $_SESSION['errors']['error5301'] == 1){ ?>
<script type="text/javascript">
alert('Something is not correct!');
</script>
<?php } ?>
<!-- Some page content -->
....
.....
..
......
<!-- Footer -->
<?php
if(isset($_SESSION['errors'])){
unset($_SESSION['errors']);
} ?>
希望有所帮助。
答案 2 :(得分:0)
第一页
<script>
onsubmitfunction()
{
document.getElementByid('errorid').value=1;
}
</script>
<form name='' id='' onsubmit="javascript:onsubmitfunction();">
<input type='hidden' id='errorid' value=''>
</form>
In destination.php
<?php
if($_POST['error']==1)
{
?>
<script language='javascript'>
alert('Errrrrorrrr');
</script>
<?
}
?>
这对你的问题已经足够了。
根据我的理解