我一直在构建一个小型CMS的演示,主要用于添加和编辑填充表单数据库,其中一个要求是要有确认对话框,以及操作成功的消息(或错误说明不成功) )。
我已经使用jquery ui对话框来处理它。在通过POST方法将数据发送到(单独)php脚本之前按钮单击时出现确认对话框,它们工作得很好。 “成功”和“错误”按摩是通过返回主页面来触发的,其中包含用于处理GET功能的url参数,它们也可以工作。唯一的问题是,如果用户刷新页面,他会再次获得相同的按摩(当他转到其他页面然后回去时也会发生)。是否有一个简单的解决方法来解决这个问题,或者是否有合适的替代方法来解决整个消息的问题?
代码示例:
在主页上:
$val=$_GET['check'];
if ($val){
$msg=$_GET['msg'];
echo '<div id="error"><h4>';
echo $msg;
echo '</div></h4>';
echo '<script>';
echo '$( "#error" ).dialog({ autoOpen: true });';
echo '$( "#error" ).dialog({ buttons: [{ text: "Close", click: function() { $( this
).dialog( "close" ); } } ]});';
echo '</script>';
}
关于php函数:
header("Location: ../projects.php?check="true"&msg=Project%20name%20updated!");
提前致谢。
答案 0 :(得分:0)
使用会话可以解决这类问题,在用户收到消息成功或错误提示的情况下,您在会话参数中设置一个值,表示用户已经看到了警报消息。
<?php
session_start();
$val = $_GET['check'];
if ($val && !isset($_SESSION['alert'])){
$_SESSION['alert'] = true;
$msg = $_GET['msg'];
echo '<div id="error"><h4>';
echo $msg;
echo '</div></h4>';
echo '<script>';
echo '$( "#error" ).dialog({ autoOpen: true });';
echo '$( "#error" ).dialog({ buttons: [{ text: "Close", click: function() { $( this
).dialog( "close" ); } } ]});';
echo '</script>';
}
?>