0

我正在使用带有 jQ​​uery 的 PHP CodeIgniter。

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

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

我这样做是通过

appname/controller/action?addSuccess=true

或者

appname/controller/action?addSuccess=false

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

问题:这种方法是否足够好?有什么好的建议可以改善这一点吗?:)

非常感谢!。

4

1 回答 1

2

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

  • 表单提交到服务器。在 CI 的 flash 消息系统中设置适当的值。
  • 重定向到另一个网址?或者也许显示另一个视图。
  • 在视图 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 (他们提到闪存数据的页面的一半。)

于 2012-07-04T02:49:39.067 回答