У меня есть этот код, который позволяет мне суммировать TextBox
и печатать результаты в последнем TextBox
но только функционируй в первой линии.
function sum() {
var acarreo = document.getElementById('acarreo[]').value;
var pagocond = document.getElementById('pagocond[]').value;
var via = document.getElementById('via[]').value;
var peaje = document.getElementById('peaje[]').value;
var combust = document.getElementById('combust[]').value;
var result = parseFloat(acarreo)-( parseFloat(pagocond)+ parseFloat(via)+ parseFloat(peaje)+ parseFloat(combust));
if (!isNaN(result)) {
document.getElementById('txt3').value = result;
}
}
window.onload = function() {
sum();
}
Только функционируй для первого, потому что ты выбираешь из-за Id единственный элемент в каждом случае, что первый элемент, который он находит с этой идентификацией. Также снова отмечать, что IDs должны бы быть уникумами и не повторяться.
function sum(e) {
const tr = e.path[2]; // Accedemos a la fila de la tabla. El valor 2 debera ser cambiado dependiendo de la posicion del elemento tr en el objeto path.
let total = 0; // contador
tr.querySelectorAll('input[type=text]:not(.txt3)').forEach(el => {
if (isNaN(parseFloat(el.value))) return;
total += parseFloat(el.value);
}); // Sumamos el value de todos los inputs de entrada de la fila
tr.querySelector('.txt3').value = total; // Grabamos el valor total en el input de salida de la fila
}
window.onload = function () {
document.querySelectorAll('input:not(.txt3)').forEach(el => {
el.addEventListener('input', sum);
}); // Añadimos el evento sum a todos los inputs salvo el de salida
}
Относительно PHP, что enseГ±as, deberГ-схвати нам изменять ID's для того, чтобы они были Гєnicos.
<td><input type="text" size="5" name="acarreo[]" value="<?php echo $acarreo=$row['acarreo']?>" title="ACARREO"></td>
<td><input type="text" size="5" name="pagocond[]" value="<?php echo $pagocond=$row['pagocond']?>" title="PAGO DE CONDUCTOR"></td>
<td><input type="text" size="5" name="via[]" value="<?php echo $via=$row['via']?>" title="VIATICO"></td>
<td><input type="text" size="5" name="peaje[]" value="<?php echo $peaje=$row['peaje']?>" title="PEAJE"></td>
<td><input type="text" size="5" name="combust[]" value="<?php echo $combust=$row['combust']?>" title="COMBUSTIBLE"></td>
<td><input type="text" class="txt3" readonly/>
<?php
echo array_reduce($row, function ($v, $w) {
$v += $w;
return $v;
});
?></td>
AquГ - оставил тебя cГіdigo для того, чтобы ты увидел функционирование: тестирует
И aquГ - cГіdigo adaptГЎndose mГЎs, которое ты просишь: тестирует