显示“成功”或“错误”jquery对话框的好方法是什么?

时间:2012-07-04 02:09:09

标签: php jquery jquery-ui codeigniter

我正在使用PHP CodeIgniter和jQuery。

比如说我有<table>(也许是员工)。 现在上面的表格我有一个“添加员工”按钮。 此按钮可使用jQuery-dialog打开<form>。当这个表单提交时,它当然是服务器端(验证是否有重复的条目),然后它被发送回相应的视图和更新的表。

我想要做的是显示一个成功添加员工的对话框,或者它是一个重复的条目。

我是通过

来做的
appname/controller/action?addSuccess=true

appname/controller/action?addSuccess=false

每当我返回视图,然后在我的页面上,在我的$(document).ready()中,我检查这样的查询字符串并打开相应的对话框(成功或错误对话框)。我现在的问题是,如果我刷新页面(相同的网址),我会再次获得对话框(尽管服务器端没有任何反应)。

问题:这种做法是否足够好?有什么好建议来改善这个吗? :)

非常感谢!

1 个答案:

答案 0 :(得分:2)

不是将该信息作为查询参数传递,而是为什么不存储该信息Code Igniters flash数据。此数据仅在一个重定向中保留。下次重新加载页面时,数据将不会被设置(因为CI会自动为您删除)并且您不会意外地显示警告。

  • 表单已提交给服务器。在CI的闪存消息系统中设置适当的值。
  • 重定向到另一个网址?或者可能显示另一个视图。
  • 在视图html中,使用php读取该flash消息值并在javascript中设置适当的值。
  • 读取该js值,并相应地显示弹出/模态/消息。
  • 下次页面刷新时,CI将自动删除Flash消息数据。

一些示例代码用于重定向视图html :(我不做php ...)

var shouldDisplayWarning = "<? php code that sets some value based on flash variable ?>";
if (shouldDisplayWarning === "yes") {
  displayWarning();
}

进一步阅读:http://codeigniter.com/user_guide/libraries/sessions.html(在页面的下半部分,他们提到了闪存数据。)