Okey.
Sucede que tengo 2 dropdowns y 3 campos que se autocompletan de forma dinámica, según lo que yo elija en los dropdowns.
uno es el precio (a), otro es mi cantidad de dinero (b), y el ultimo y mas importante la cantidad de items que puedo comprar con mi dinero (b/a)
Ahora, el drop1 se carga usando un script.
Código:
function setValuesForCountry(country3,leyenda,destino,acc,valor,div)
{
var cadena = new String(country3);
var aux = cadena.split("/");
if($F(destino)!=-1)
{
var factor =parseFloat(replace(aux[1],',','.'));
var tarifa = new String($F(destino));
var mitad = tarifa.split("$");
var tarifa2 =parseFloat(replace(mitad [1],',','.'));
if(!isNaN(factor))
{
// alert(tarifa2+"/"+factor);
// monto=(tarifa2*factor).toFixed(4);
suma=parseFloat (tarifa2)+ parseFloat (factor);
valorcito=suma.toFixed(3);
document.getElementById(valor).value="";
if(isNaN(valorcito))
document.getElementById(valor).value="US$ FREE";
else
{
document.getElementById(valor).value="US$"+valorcito;
if(leyenda=="es")
$(div).innerHTML="<font style=\"font-size:10px; color:#000000;\">* Esta tarifa ya considera"+ factor +"/min.</font>";
}
}
else
{
if(isNaN(tarifa2))
{
document.getElementById(valor).value="FREE";
}
else
{
document.getElementById(valor).value="";
document.getElementById(valor).value=+tarifa2;
$(div).innerHTML="";
}
}
}
document.getElementById(acc).value="";
document.getElementById(acc).value=aux[0];
}
function setValuesForCountry3(country3,leyenda,origen,valorr,div)
{
var tarifa = new String(country3);
//se puede crear en una linea.
var tarifa2 = tarifa.split("$");
var valor = replace(tarifa2[1],',','.');
factor = new String ($F(origen));
mitad=factor.split("/");
aux=mitad[1];
aux=parseFloat(aux);
//alert(aux+"/"+valor+"/"+country3);
if(!isNaN(aux) && !isNaN(valor))
{
// alert(valor+"/"+aux);
// monto=(valor*aux).toFixed(4);
suma=parseFloat (valor)+ parseFloat (aux);
valor=suma.toFixed(4);
country3=valor;
document.getElementById(valorr).value="";
document.getElementById(valorr).value="US$"+country3
}
else
{
//document.getElementById(valorr).value="";
document.getElementById(valorr).value="US$"+valor;
$(div).innerHTML="";
}
}
(algunas cosas las saque por ser php y de mi bd :)
y el drop 2 tiene este codigo
Código:
function setValuesForMinutos(country3)
{
var tarifa = new String(country3);
//se puede crear en una linea.
var tarifa2 = tarifa.split("$");
//rescato el factor de la tabla
factor = new String ($F('select'));
mitad=factor.split("/");
aux=mitad[1];
aux=parseFloat(aux);
if($F('select')!=-1 && isNaN ($F('select')) && !isNaN(aux))
{
var valorcito = replace(tarifa2[1],',','.');
aux2=valorcito;
monto=(aux2*aux).toFixed(4);
suma=parseFloat (valorcito)+ parseFloat (monto);
valorcito=suma.toFixed(3);
country3=valorcito
}
else
{
var tarifa = new String(country3);
//se puede crear en una linea.
var tarifa2 = tarifa.split("$");
var valorcito = replace(tarifa2[1],',','.');
country3=parseFloat (valorcito).toFixed(3);
}
var saldo = document.buy.total2.value;
if(tarifa2[1] == 0)
{
document.buy.minutos.value = "";
document.buy.rate3.value = "";
}
else
{
if(saldo == 0)
{
var total_compra= document.buy.total2.value;
document.buy.minutos.value = (total_compra/valorcito).toFixed(0);
}
else
{
minutitos = saldo/valorcito;
document.buy.minutos.value = minutitos.toFixed(0);
}
document.buy.rate3.value = +country3;
}
}
}
Ahora desde la web, llaman al script asi.
Código:
<table width="100%" border="0" cellpadding="5" cellspacing="0" >
<tr>
<td width="254" align="left" class="textos_chicos"> <br>Desde donde llamas <br>
<select name="select_orig" class="input_sb" id="select" onChange="setValuesForCountry(this.options[this.selectedIndex].value,'es','select2','aphone','rate3','mensa')">
<option value="" selected>seleccione...</option>
<? echo $select_or; ?>
</select><br>
<div id="mensa" style="position:absolute; left: 38px; width:400px"></div>
<br>
</td>
</tr>
<tr>
<td align="left" class="textos_chicos">Marca número de Acceso<br>
<input name="aphone" type="text" class="input_sb" id="aphone" size="18" maxlength="20" readonly="true"><br>
</td>
</tr>
</table></td>
</tr>
</table></td>
</tr>
<tr>
<td align="left" class="textos"> </td>
<td align="left" class="textos"><table width="83%" border="0" cellpadding="6" cellspacing="0" >
<tr>
<td width="170" align="left" class="textos_chicos">Tarifas/min<br>
<select name="select_dest" class="input_sb" id="select2" onChange="setValuesForMinutos(this.options[this.selectedIndex].value);" >
<option value="-1" selected>seleccione... </option>
<? echo $select_rates; ?>
</select>
</td>
<td width="81" align="center" valign="bottom" class="textos"><input name="rate3" type="text" class="input_sb" id="rate3" size="10" maxlength="10" readonly="true"></td>
<td width="42" align="left" class="textos_chicos">US$/Min </td>
</tr>
<tr>
<td align="right" valign="middle" class="textos_chicos">Con tu saldo puedes llamar </td>
<td align="center" valign="middle" class="textos"><input type="hidden" name="saldo" id="saldo" value="<? echo $credit;?>">
<input name="minutos" type="text" class="input_sb" id="rate32" size="10" maxlength="10" readonly="true"></td>
<td align="left" class="textos_chicos">Mins</td>
</tr>
</table>
El problema es que este código lo hizo otra persona y no dejo nada documentado, opr lo que me es dificil tratar de seguirlo y más todavia de modificarlo.
El codigo funciona muy bien si usas la primera seleccion (drop1) y luego la segunda(drop2) lo que te arroja el resultado (rate32).
Pero si vuelvo a cambiar drop1, el resultado no cambia más y estoy obligado a cambiar drop2 por otro valor para que ejecute el script.
Mi necesidad es que funcione ya sea cambiando drop1 y drop2 o al revés.
Habia pensado en meter todo en un solo script y que lo ejecute con un botón. Pero no se si me dejarán meter un boton en algo que ya era dinámico...
Espero sus comentarios