我正在通过开发在线报价表来与我竞争。我试图根据是否勾选复选框来改变价格。
行为应该是: 在初始页面加载 - 标准(从mysql - 变量)价格 选中复选框时 - 广告$ 20(从mysql)到价格 当未选中复选框时 - 返回标准变量价格
我现在的行为是: 在初始页面加载 - 标准(从mysql - 变量)价格 选中复选框时 - $ 20(来自mysql)但不添加原始价格 当复选框未选中时 - NaN
我可以确认价格在mysql中存储为整数,例如292 任何帮助将不胜感激。
以下代码: 在HTML页面中的PHP
<?php
$table = $_GET['bintype'];
$pcode = $_GET['tags'];
include 'connect.php';
$result=mysqli_query($con,"SELECT * FROM $table WHERE short='$pcode'");
$row_cnt = mysqli_num_rows($result);
if($row_cnt == 0)
{
PRINT "<p align='middle'>No go</p>";
}
else
while($row=mysqli_fetch_array($result))
{
$b = number_format($row['barrow'], 2) AND "<div id='barrowid'>";
$c = number_format($row['2m3 General'], 2) AND "<div id='total_price'>";
$d = $row['2m3 General'] AND "<div id='total_number'>";
echo "<form id='checkboxval'><input type='checkbox' id='checkit' name='menu1'
value=".$b.">
</input> <div id='total'>Total:$".$d."</div>
</form>";
}
mysqli_close($con);
?>
的javascript
var checkbox = document.getElementById("checkit");
checkbox.onclick = function () {
var subtotalField = document.getElementById("total_price");
var checkboxes = document.forms["checkboxval"].getElementsByTagName("input");
var subtotal = document.getElementById("total_price");
var total = document.getElementById("total_price");
for (var i = 0, length = checkboxes.length; i < length; i++) {
if (checkboxes[i].checked) {
var newSubtotal = parseInt(subtotal.innerHTML) + parseInt(checkboxes[i].value);
subtotal.innerHTML = newSubtotal;
}
}
total = (parseFloat(subtotal));
document.getElementById("total").innerHTML = "Total:$" + total;
};
答案 0 :(得分:0)
您的变量subtotal
和total
是DOM元素 - 您需要在执行算术之前从中提取值。
for (var i = 0, length = checkboxes.length; i < length; i++) {
if (checkboxes[i].checked) {
var newSubtotal = parseInt(subtotal.innerHTML) + parseInt(checkboxes[i].value);
subtotal.innerHTML = newSubtotal;
}
}
你的代码有点困惑。仔细查看它并删除冗余和重复的代码。另外,请检查:document.getElementById("$total_number");
。带有id = "$total_number"
的元素在哪里?