作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表单,可以将用户定义的姓名和电子邮件地址写入 mysql 数据库。我遇到问题的部分是我有表单的次要部分,它为复选框分配值,然后给你总和,它被定义为“总计”。我想将这个总数写入同一个数据库。我是 JS 编码的新手,我不太确定在用户确定值后如何传递 total。
<form name="form1">
<input type="checkbox" name="check[]" data-weight="5" /> 5<br />
<input type="checkbox" name="check[]" data-weight="10" /> 10<br />
<input type="checkbox" name="check[]" data-weight="30" /> 30<br />
<div>Total: <span id="total">0</span></div>
</form>
<script type="text/javascript">
(function () {
var totalEl = document.getElementById('total');
var total = 0;
var checkboxes = document.form1['check[]'];
var handleClick = function () {
total += parseInt(this.getAttribute('data-weight'), 10) * (this.checked ? 1 : -1);
totalEl.innerHTML = total;
};
var l = checkboxes.length;
for (i = 0; i < l; ++i) {
checkboxes[i].onclick = handleClick;
}
}());
</script>
最佳答案
首先: 如果禁用 Javascript,它应该工作吗?或者提交表单但可能错误/没有值写入数据库是否可以接受?
你从没有启用 Javascript 的用户那里得到你的数据库,然后你可以使用 AvL's suggestion .
那么您应该确保您没有依赖 Javascript 支持。您应该确保您的表单始终提供一致的值,即使它是在没有使用 Javascript 进行计算的情况下提交的。
在这种情况下,您应该在服务器端而不是客户端进行计算。当然,您可以在客户端进行计算,但问题是您只对客户端用户界面进行客户端数学运算(不针对最终数据)。
我不知道您的服务器端处理,因此我不建议任何用于服务器端计算和/或将值保存到数据库的代码。因此,我唯一的建议是您应该在服务器端处理您的 check[]
位数组。
如果你愿意,你可以更好地描述你的服务器/数据库/处理,并留下关于你的更改的注释作为对我的回答的评论。
更新:这基本上是关于 pst commented 的更长的解释对你的问题。
关于javascript - 如何将 javascript 变量写入 sql 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12250493/
我是一名优秀的程序员,十分优秀!