我有一个愚蠢的客户,他似乎不会在警报中理解英文文本,指示他的数据已成功保存。他不断按下提交按钮并将新行数据插入数据库。有人可以建议一个解决方案,以防止这个吗?我使用jQuery提交数据,因此没有刷新。
答案 0 :(得分:4)
您可以禁用提交按钮或图片,直到请求返回结果。
答案 1 :(得分:1)
在隐藏字段中生成插入的页面上的唯一标记,该字段将在提交表单时发布。将此令牌存储在某个地方的数据库中。处理包含该令牌的帖子时,如果该令牌尚未被标记,则标记该令牌已被使用。如果看到带有已经消费的令牌的帖子,拒绝处理它并向用户显示错误(或重定向到编辑/更新页面以便他们进行更改)。
编辑:根据评论
如果您需要来自同一页面的多个插入,那么可能您有一些包含新数据的输入字段。当你提交数据时,建立一个模态对话框,上面写着“请等我更新你的数据”。这将阻止用户在更新发生时执行任何操作。更新成功返回后清除输入字段并关闭对话框。如果请求时间过长,请关闭对话框,显示错误,并将数据保留在字段中以便重新提交。
答案 2 :(得分:1)
当您通过AJAX删除帖子时,Wordpress有一个很棒的动画。也许你可以做类似的事情,除了在屏幕上添加新行(使用JSON获取数据)并将其淡入,绿色首先帮助向最终用户显示它是绿色。
至于不重置表单值,你可以在jQuery
中做这样的事情$('#myForm input[type=text]').val('');
好运弗兰克!
修改强> 我想如果你通过AJAX返回结果,然后在屏幕上更新某些内容,那么最终用户就不太可能认为他的输入没有输入数据库。
你可以从www.ajaxload.info获得一个很酷的ajax加载器,并在AJAX(我假设当你说用户没有离开页面,这就是你所指的)时显示这个处理
答案 3 :(得分:0)
您可以将该数据放在屏幕上,使用黄色淡入淡出效果在列表视图中将其突出显示在屏幕上。当新数据插入到表或列表元素的顶部时,暂时突出显示它,使用jquery的新实时方法添加通过AJAX删除行的功能。
此外,由于您刚刚获得数据,因此无需等待将其添加到屏幕上,只需确保检查数据库是否返回成功结果,以便您可以将其删除或使用占位符,直到数据库返回成功为止然后在成功时将数据添加到其中。