Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/09/2007, 07:30
Avatar de SCY-FOX
SCY-FOX
 
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 17 años, 4 meses
Puntos: 5
Re: recargar parte de un script

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&uacute;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">&nbsp;</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