Подсчет суммы из таблицы

314
.
Всем привет Сто лет тут не был.
Ребята, подскажите альтернативное решение задачи.
Нужно из таблицы посчитать кол-во и цену товаров на js и через localStorage передать на другую страницу. И как-бы проблем нет, все работает. Но необходимо "как-то иначе" построить js код функции калькулятора. В общем, ищу альтернативные решения. Вот что у меня получилось.

<?php
$data = mb_convert_encoding(file('123.csv'), 'utf-8', 'cp1251');

echo '
<table>
<tr>
<th>Изоражение</th>
<th>Наименование</th>
<th>Описание</th>
<th>Цена</th>
<th>Кол-во</th>
</tr>
';

    for ($i = 0;$i < count($data);$i++){

        $data_array = explode(';', $data[$i]);
        echo '<tr>';

        for($f = 0;$f < count($data_array);$f++) {
          
            if($f == 0){
                echo '<td><img width="100px" height="120px" src="'.$data_array[$f].'">';
				$d = $i+1;
            }elseif($f == 3){
                echo '<td><input type="text" name="price'.$d.'" id="price'.$d.'" value="'.$data_array[$f].'" disabled="disabled">';
            }elseif($f == 4){
                echo '<td><input type="number" name="count'.$d.'" id="count'.$d.'" placeholder="Введите кол-во" min="0">';   
            }elseif($f == 1){
                echo '<td id="productName'.$d.'">'.$data_array[$f].''; 
            }else{
                echo '<td>'.$data_array[$f].''; 
            }
        }
    echo '</tr>';
    }
echo '</table>';
?>
<div class="button">
    	<button type="submit" onClick="document.form1.result.value=calculate()">Посчитать</button>
                <form name="form1">
                    <input type="text" id="result" placeholder="0">
                </form>
        <button type="button" onClick="basket()">Переход в корзину</button>
</div>
<script>
    var size = '<?php echo $d;?>';
        function basket()
        {
            let sum = calculate();
            if (sum > 0)
            {
                let newWindow = window.open('basket.php', 'form');
            }
        }

        function calculate()
        {
            let sum  = 0;
            localStorage.clear();  

            for (let i = 1; i <= size; i++)
            {
                let price = 0,
                    count = 0;

                if (document.getElementById("count"+i).value != 0)
                {
                    count = parseInt(document.getElementById("count"+i).value);
                    price = parseInt(document.getElementById("price"+i).value);
                    let name = document.getElementById("productName"+i).innerHTML;
                    var object = {
                        name: name,
                        price: price,
                        count: count,
                        size: size,
                    } 
                    localStorage.setItem(name, JSON.stringify(object));
                }
                sum += price * count;
            }
            return sum;
        }
    </script>
.
ты хочешь что бы все считалось в рельном времени ?
.
Fublin, Не, просто была необходимость построить иначе фун-цю подсчета в принципе. Задача была решена )) Не актуально уже.
Всего: 3