我正在使用PHP CodeIgniter和jQuery。
比如说我有<table>
(也许是员工)。
现在上面的表格我有一个“添加员工”按钮。
此按钮可使用jQuery-dialog
打开<form>
。当这个表单提交时,它当然是服务器端(验证是否有重复的条目),然后它被发送回相应的视图和更新的表。
我想要做的是显示一个成功添加员工的对话框,或者它是一个重复的条目。
我是通过
来做的appname/controller/action?addSuccess=true
或
appname/controller/action?addSuccess=false
每当我返回视图,然后在我的页面上,在我的$(document).ready()
中,我检查这样的查询字符串并打开相应的对话框(成功或错误对话框)。我现在的问题是,如果我刷新页面(相同的网址),我会再次获得对话框(尽管服务器端没有任何反应)。
问题:这种做法是否足够好?有什么好建议来改善这个吗? :)
非常感谢!
答案 0 :(得分:2)
不是将该信息作为查询参数传递,而是为什么不存储该信息Code Igniters flash数据。此数据仅在一个重定向中保留。下次重新加载页面时,数据将不会被设置(因为CI会自动为您删除)并且您不会意外地显示警告。
一些示例代码用于重定向视图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(在页面的下半部分,他们提到了闪存数据。)