Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将列的行相加_Javascript_Php_Html_Forms - Fatal编程技术网

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");