Javascript 将列的行相加
在尝试了几件我在互联网上发现的事情后(都不起作用),我不知道如何在我的表中添加一列。我正在尝试将所有Javascript 将列的行相加,javascript,php,html,forms,Javascript,Php,Html,Forms,在尝试了几件我在互联网上发现的事情后(都不起作用),我不知道如何在我的表中添加一列。我正在尝试将所有点相加,并在总计所在的底部打印出来 PHP代码: <?php function getProducts() { $query = 'SELECT * FROM `oc_product` ORDER BY `model` ASC'; $params = array(); $results = dataQuery($query,$params); foreac
点
相加,并在总计
所在的底部打印出来
PHP代码:
<?php
function getProducts() {
$query = 'SELECT * FROM `oc_product` ORDER BY `model` ASC';
$params = array();
$results = dataQuery($query,$params);
foreach ($results as $result) {
$product_id = $result['product_id'];
$product_name = getProductName($product_id);
$product_image = 'shop/image/'.$result['image'];
$product_price = 1;
echo '<tr>';
echo '<td width="15px"><img src="'.$product_image.'" width="10px" height="10px" /></td>';
echo '<td width="200px">'.$product_name.'</td>';
echo '<td width="150px"><input type="number" value="0" min="0" max="3456" name="quantity" /></td>';
echo '<td width="200px" align="center" data-product-price="'.$product_price.'">0</td>';
echo '</tr>';
}
}
function getProductName($product_id) {
$query = 'SELECT `name` FROM `oc_product_description` WHERE `product_id` = ?';
$params = array($product_id);
$results = dataQuery($query,$params);
return $results[0]['name'];
}
?>
Javascript代码:
<script>
$(function(){
$("input[name='quantity']").on("input", function(){
if((+$(this).val()) < (+$(this).attr("min"))){
$(this).val($(this).attr("min"));
} else if((+$(this).val()) > (+$(this).attr("max"))){
$(this).val($(this).attr("max"));
}
var $outputCell = $(this).parent().siblings("[data-product-price]").eq(0);
$outputCell.html((+$outputCell.data("product-price") * +$(this).val()));
});
});
</script>
$(函数(){
$(“输入[name='quantity'])。在(“输入”,函数()上){
如果((+$(this.val())<(+$(this.attr(“min”)){
$(this.val($(this.attr(“min”));
}else if(+$(this.val())>(++$(this.attr(“max”)){
$(this.val($(this.attr(“max”));
}
var$outputCell=$(this.parent().sibbines(“[data product price]”)。eq(0);
$outputCell.html(+$outputCell.data(“产品价格”)*+$(this.val());
});
});
表格:
<form>
<table align="center">
<tr>
<td align="center" colspan="4"><input type="text" name="username" placeholder="In-Game Name" /><br/><br/></td>
</tr>
<tr>
<th></th>
<th>Product Name</th>
<th align="center">Quantity</th>
<th align="center">Points Earned</th>
</tr>
<?php echo getProducts(); ?>
<tr>
<td colspan="4"><br/><br/></td>
</tr>
<tr>
<td align="right" colspan="3"><strong>Total:</strong></td>
<td align="center">0 Points</td>
</tr>
</table>
</form>
品名
量
获得的分数
总计:
0分
--编辑--
更改了我的代码,删除了javascript函数adding()
,因为它太旧了,不起作用。现在,将积分
列中的所有单元格相加,并将其打印在总计
所在的最后一行中,最好的方法是什么
因此,如果通过
javascript代码
计算每个积分的总和
,如何将其相加并显示在total
所在的表格末尾?只需在php中添加值即可
<?php
function getProducts() {
$total = 0;// <---------- this line
$query = 'SELECT * FROM `oc_product` ORDER BY `model` ASC';
$params = array();
$results = dataQuery($query,$params);
foreach ($results as $result) {
$product_id = $result['product_id'];
$product_name = getProductName($product_id);
$product_image = 'shop/image/'.$result['image'];
$product_price = 1;
echo '<tr>';
echo '<td width="15px"><img src="'.$product_image.'" width="10px" height="10px" /></td>';
echo '<td width="200px">'.$product_name.'</td>';
echo '<td width="150px"><input type="number" value="0" min="0" max="3456" name="quantity" /></td>';
echo '<td width="200px" align="center" class="price" data-product-price="'.$product_price.'">0</td>';
echo '</tr>';
$total += $product_price;// <------- this line
}
echo "<input type='hidden' id='points' value='$total'";
}
问题到底在哪里?您试图添加的是哪一列?很抱歉,我将在php代码部分的
getProducts()下编辑我的问题,这一点在哪里
这是最后一个
获取echo'dso$product\U price
变量的值了??那么这个输出怎么会出现在我表格的最后一行呢?注意:未定义的变量:total in/customers/b/4/a/athomestudios.net/httpd.www/mc/catalog/view/default/pages/shop/sell.php,第56行
我不认为它会是正确的可以通过mysql输出总数,这就是为什么我要用javascript来实现。数量描述了这1项的总分,这些都是使用javascript处理的。然后我尝试了第二个javascript函数来累加所有的行,但不管发生什么,它都会打印出0。。。如果我们使用隐藏字段获取值,可以吗?@NiranjanNRaju您的$total
是在函数getProducts()
中定义的,因此在该函数之外无法访问。这是一个基本的变量范围问题-
<tr>
<td align="right" colspan="3"><strong>Total:</strong></td>
<td id="Total" align="center"></td> <---- leave empty
</tr>
$("#Total").html($("#points").val() + " Points");