Qujé tal, hace poco tuve un problema con una suma condicionada en javascript, misma que quedó solucionada de la siguiente manera:
Código Javascript
:
Ver originalvar banks = {"~":0, "Afirme": 0, "Bajio": 0, "Banamex": 0, "Banco Azteca": 0, "Banco Walmart": 0,
"Banorte": 0, "Banregio": 0, "BBVA Bancomer": 0, "Coppel": 0, "HSBC": 0, "Inbursa": 0, "IXE": 0, "Mifel": 0, "Santander": 0, "Scotiabank": 0};
var form = document.forms.form1;
var selects = form["banco_fond[]"];
var deposit_fields = form["fond[]"];
var bnc_auto = form["banco_auto[]"];
var resta = form["auto[]"];
//muestra resultado
var result = function() {
var html_result = [];
for (var j in banks)
html_result.push(j == '~' ? '' : banks[j] + ' - ' + j);
document.getElementById("result").innerHTML = "<div class='banks_style'>Totales por banco:<br /> " + html_result.join("<br />")+"<div>";
}
var update = function(){
for (var j in banks){
var x = 0, field;
var y = 0, camp;
banks[j] = 0;
while (field = deposit_fields[x])
if (selects[x++].value == j)
banks[j] += +field.value;
while (camp = resta[y])
if (bnc_auto[y++].value == j)
banks[j] += -camp.value;
banks[j] = parseFloat(banks[j]).toFixed(3);
}
result()
};
for (var i = 0; i < deposit_fields.length; i++) {
var optionsHTML = '';
for (var j in banks)
optionsHTML += '<option value="' + j + '">' + j + '</option>';
selects[i].innerHTML = optionsHTML
}
for (var i = 0; i < resta.length; i++) {
var sel = '';
for (var j in banks)
sel += '<option value="' + j + '">' + j + '</option>';
bnc_auto[i].innerHTML = sel
selects[i].onkeyup = update
selects[i].onkeypress = update
bnc_auto[i].onkeyup = update
bnc_auto[i].onkeypress = update
}
update()
Suma los valores del mismo banco de una sección y los resta de otra para así ajustar todo a ceros.
Este script funciona con un array que contiene los valores de los bancos, mismos que adquiere para realizar la suma y la resta, sin embargo, esto me ha provocado ahora una pequeña dificultad, ya que cuando hago una consulta en PHP para que me devuelva los datos insertados al formulario, pues no ejecuta ya que rellena los campos con valores de la base de datos. cómo puedo hacer para que siga ejecutando con normalidad o al código adjunto hacerlo trabajar sin que necesite de los valores del array a mis campos.
Código Javascript
:
Ver originaloptionsHTML += '<option value="' + j + '">' + j + '</option>';