计算php表内的总价
我想在一张表中显示总价 我有两个数组,其中一个是汽车的名称,第二个是每辆车的价格 我设法在表中显示了价格和名称, 但问题是,我有一个“复选框”的东西,显示汽车是否售出 我试图进行合计计算,计算所有选中复选框的总价 这意味着-当复选框处于启用状态时,总价变量应将该车的价格添加到该复选框中 下面是它的外观: 我必须提到的是,我刚开始在大学学习计算php表内的总价,php,html,css,Php,Html,Css,我想在一张表中显示总价 我有两个数组,其中一个是汽车的名称,第二个是每辆车的价格 我设法在表中显示了价格和名称, 但问题是,我有一个“复选框”的东西,显示汽车是否售出 我试图进行合计计算,计算所有选中复选框的总价 这意味着-当复选框处于启用状态时,总价变量应将该车的价格添加到该复选框中 下面是它的外观: 我必须提到的是,我刚开始在大学学习php, 以下是数组和变量: <?php $cars = array ("ford","fiat",
php
,
以下是数组和变量:
<?php
$cars = array ("ford","fiat","renault","mazda");
$prices = array(100,80,90,120);
$sold = '<input type="checkbox" name="sold">';
?>
以及表的php
代码:
<?php
$cars = array ("ford","fiat","renault","mazda");
$prices = array(100,80,90,120);
$sold = '<input type="checkbox" name="sold">';
?>
<h1>list of cars</h1>
<table>
<th>name</th>
<th>price</th>
<th>sold</th>
<?php
for($i=0;$i<count($cars);$i++){
echo
"<tr>
<td>$cars[$i]</td>.
<td>$prices[$i]$</td>.
<td>$sold</td>.
</tr>";
}
?>
</table>
汽车清单
名称
价格
出售
如何计算所有复选框价格的数量?我会修改复选框,将价格作为数据属性包含在内,并将其放在for循环中,而不是放在for循环之外
$sold = '<input type="checkbox" data-price="$prices[$i]" name="sold">';
要显示总数,您需要一个div来保存总数
<div id="total"></div>
imvain2的答案将是您的最佳选择,因为它不需要客户机-服务器往返
但是,如果您想在php中执行此操作,则需要以某种方式将复选框与汽车相关联
一种方法是像这样调整for循环
for($i = 0; $i < count($cars); $i++) {
echo (
"<tr>
<td>{$cars[$i]}</td>
<td>{$prices[$i]}$</td>
<td><input type=\"checkbox\" name=\"sold[]\" value=\"{$prices[$i]}\"></td>
</tr>"
);
}
**注意:如果需要,请修改我的英语
请注意,孔代码是在单个php文件中编写的。
退出一段时间后,我设法修复我的代码。
首先,正如前面所建议的,给出的JS代码是用jquery编写的,我还没有学会JS的这一部分,因此我在JS中的朋友的帮助下使用dom编写了代码
CSS:
身体{
文本对齐:居中;}
桌子{
字体系列:arial,无衬线;
边界塌陷:塌陷;
宽度:50%;
左边距:自动;
右边距:自动;
利润率最高:15%;
}
th{
}
td,th{
边框:1px实心#dddddd;
文本对齐:居中;
填充:8px;
}
tr:n个孩子(偶数){背景:#CCC}
tr:n个孩子(奇数){背景:#FFF}
JS:(此时脚本标记的位置并不重要,但iv'e将其定位在php文件顶部的头内容中
<script>
function calcTotal() {
let sum = 0;
for (let index = 0; index < 4; index++) {
let priceAsStr = document.getElementById("price" + index).innerHTML;
let price = parseInt(priceAsStr);
let soldOrNot = document.getElementById("soldOrNot" + index).checked;
if (soldOrNot == true)
{
sum = sum + price;
}
}
document.getElementById("sum").innerHTML ="$" + sum;
}
函数calcTotal(){
设和=0;
对于(让索引=0;索引<4;索引++){
让priceAsStr=document.getElementById(“price”+index).innerHTML;
let price=parseInt(priceAsStr);
让soldOrNot=document.getElementById(“soldOrNot”+索引)。选中;
if(soldOrNot==true)
{
总和=总和+价格;
}
}
document.getElementById(“sum”).innerHTML=“$”+sum;
}
最后,对于身体:
<?php
$cars = array("Ford","Fiat","Renault","Mazda");
$prices = array(100,80,137,453);
?>
<table>
<tr>
<th>Cars</th>
<th>Price</th>
<th>Sold</th>
</tr>
<?php
$sum = 0;
for ($i=0; $i < 4; $i++) {
echo "<tr id='row$i'>
<td>{$cars[$i]}</td>
<td id='price{$i}'> {$prices[$i]}$</td>
<td><input type='checkbox' id='soldOrNot{$i}' name='sold{$i}' onClick='calcTotal()' value=''> </td>
</tr>";
}
?>
</table>
<h1>Total Price: <span id="sum">0</span></h1>
汽车
价格
出售
如何使最终结果显示在php页面上?我已经按照您的建议完成了步骤,但我不知道该怎么做so@moses我更新了我的答案,包括更新的javascript和显示总数的div。
$total = 0;
foreach ($_POST['sold'] as $value) {
$total += (int)$value;
}
<style>
body {
text-align:center;}
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 50%;
margin-left: auto;
margin-right: auto;
margin-top:15%;
}
th{
}
td, th {
border: 1px solid #dddddd;
text-align: center;
padding: 8px;
}
tr:nth-child(even) {background: #CCC}
tr:nth-child(odd) {background: #FFF}
</style>
<script>
function calcTotal() {
let sum = 0;
for (let index = 0; index < 4; index++) {
let priceAsStr = document.getElementById("price" + index).innerHTML;
let price = parseInt(priceAsStr);
let soldOrNot = document.getElementById("soldOrNot" + index).checked;
if (soldOrNot == true)
{
sum = sum + price;
}
}
document.getElementById("sum").innerHTML ="$" + sum;
}
<?php
$cars = array("Ford","Fiat","Renault","Mazda");
$prices = array(100,80,137,453);
?>
<table>
<tr>
<th>Cars</th>
<th>Price</th>
<th>Sold</th>
</tr>
<?php
$sum = 0;
for ($i=0; $i < 4; $i++) {
echo "<tr id='row$i'>
<td>{$cars[$i]}</td>
<td id='price{$i}'> {$prices[$i]}$</td>
<td><input type='checkbox' id='soldOrNot{$i}' name='sold{$i}' onClick='calcTotal()' value=''> </td>
</tr>";
}
?>
</table>
<h1>Total Price: <span id="sum">0</span></h1>