【发布时间】:2015-01-24 22:25:28
【问题描述】:
我有一个带有多个复选框的表单,代表成本;这些值来自数据库。
<input type="checkbox" name="check" value="12.00" />
<input type="checkbox" name="check" value="40.00" />
在提交表单时,我使用 javascript 将选中的值添加在一起,并将新值发布到隐藏字段中。
<input type="hidden" name="total_cost" value="" />
我需要从数据库中传递行 ID 以及每个复选框的成本值。这样,当我选中一个或多个复选框并提交付款时,我需要将状态从未支付更改为已支付。
注意:我无法在选中复选框时更改状态。我只能在所有交易完成后才能更改状态。
【问题讨论】:
-
你说你用JS。在每一行(以tr为例)上放一个带有id的attr,然后在提交数据之前读取它并与Js聚合它们。
-
除非你用它来显示,否则为什么要在js中计算总成本?无论如何,您只需要在服务器端重新计算以验证项目总和是否正确。你永远不应该相信客户端的输入。
-
不要在客户端代码中这样做。什么可以阻止某人摆弄表单值并将他们的发票总额更改为 0 美元,甚至“-500 美元”并给自己一个不错的“退款”?
-
if(!isset($_POST['var'])){ $status = "PAID"; }else{ $status = "NOT PAID"; } -
谢谢@MikeBrant 和 MarcB,我没想到会有这种漏洞。
标签: javascript php forms checkbox