用户可以通过页面上的大量(> 500)输入字段插入订单值:
<input type="text" name="%id%" data-product_id="%id%" class="updateQtyField" maxlength="4">
无法使用“保存”按钮,因此我们使用jQuery脚本将插入数据更新到会话:
$("input.updateQtyField").keyup(function() {
$.post("update.php", { product_id: $(this).data('product_id'), qty: $(this).val() }, function(result) { if (result != 1) { alert(result); } });
});
不幸的是,$ .post请求有可能没有更新字段,我完全不知道为什么。可能是因为系统的用户工作非常快:插入值 - 选项卡 - 插入值 - 选项卡 - 等。通过日志我看到keyup
触发器运行良好,但$.post
没有不做他的工作。看来工作岗位没有任何响应。
我尝试通过额外的onChange
操作使用解决方法,但这也不是很好的预处理,同样不是所有字段都正确更新。我尝试过的另一个选项是运行良好但是会给出一些表现问题:每个keyup
发送输入字段。结果非常好,但页面冻结了几秒钟并且不是一个好的解决方案。
PHP文件update.php是一个非常简单的文件:
$_SESSION['productQty'][$_POST['product_id']] = $_POST['qty'];