保存表单时执行与此类似的代码:
$wpdb->query("DELETE FROM Unit_list WHERE group = '$group_id'");
$order = 1;
$unique_units = array_unique($units);
foreach ($unique_units as $unit) {
$wpdb->insert("Unit_list", array("unit" => $unit, "group" => $group_id, "sort_order" => $order));
$order++;
}
每天几次会有一些重复。
如果表单已提交两次,并且每次都有足够的时间运行此部分代码,则不会有重复项,因为第二次将涉及删除整个第一个组。
对于重复项,此代码必须在同一时间运行两次。
快速双击就可以了,但是如果第三次点击很慢而且没有同步,则该组将被删除而不涉及重复。
在确定双击是原因之后,解决方案是停止检测表单提交按钮的后续点击。
答案 0 :(得分:1)
请在此处查看客户端(jQuery)解决方案:Prevent double submission of forms in jQuery
这里有一个PHP: http://phpsense.com/2006/prevent-duplicate-form-submission/
答案 1 :(得分:0)
似乎问题是人们多次点击。如果我多次点击提交按钮,那么更新数据库的php代码会运行几次......
但是...
我无法复制有序数据库条目交错的问题。我怀疑它需要鼠标点击才能在几毫秒之内。也许他们的鼠标或浏览器出现问题导致双击事件触发。特定用户在几天内多次发生这种情况。