解决GET参数触发刷新和on&#34的功能;返回"?

时间:2014-06-01 14:56:15

标签: php jquery

我一直在构建一个小型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!");

提前致谢。

1 个答案:

答案 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>';
}
?>