Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Problemas convirtiendo string a int

Estas en el tema de Problemas convirtiendo string a int en el foro de Javascript en Foros del Web. Hola pues bueno estoy empezando con esto del javascript, el problema es que cojo un string numerico del html y necesito pasarlo a int para ...
  #1 (permalink)  
Antiguo 30/10/2013, 17:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Problemas convirtiendo string a int

Hola pues bueno estoy empezando con esto del javascript, el problema es que cojo un string numerico del html y necesito pasarlo a int para poder operar con el. Como podeis ver el valor de esos dos numeros que os comento salen de un array obtenido con php de la base de datos.

El script es el siguiente:

Código:
function CalcularModificacion() 
{
     var total = 0;
     var pago = 0;
     var envio = 0;
     var pagar = 0;

     var certificado = parseInt(document.getElementById("Coste_Cert").value); //Aqui debe de estar el problema supongo.
     var envio1 = document.getElementById("envioemail").checked;
     var envio2 = document.getElementById("envioordinario").checked;
     var envio3 = document.getElementById("enviocertificado").checked;
     var pago1 = document.getElementById("transf").checked;
     var pago2 = document.getElementById("tarjeta").checked;
     var pago3 = document.getElementById("paypal").checked; 
     var YaPagado = parseInt(document.getElementById("Ya_Pagado").value); //Y aqui tb claro.


    if (envio1 == true) {
        envio = 0; envio = envio.toFixed(2);
    }else if (envio2 == true) {
        envio = 4; envio = envio.toFixed(2);
    }else if (envio3 == true) {
        envio = 6.5; envio = envio.toFixed(2);
    }

    if (pago1 == true) {
        pago = 0; pago = pago.toFixed(2);
    }else if (pago2 == true || pago3 == true) {
        pago = certificado * 0.034; pago = pago.toFixed(2);
    }

    total = certificado + envio + pago;
    pagar = total - YaPagado; 

    document.getElementById("Coste_Envio").value = envio;
    document.getElementById("Coste_Pago").value = pago;
    document.getElementById("Coste_Total").value = total;
    document.getElementById("Por_Pagar").value = pagar;
}
Y estos son los formularios:

Código:
<form id='modificar' name='modificar' method='post' action='modificardatos.php'>
    <div class='caja-formulario'>
        <h4>PASO 3: ELIGE MÉTODO DE ENVÍO</h4>
        <div class='radios'>
                <INPUT type='radio' name='Envio' id='envioemail' value='email' onclick='CalcularModificacion()' checked><span><b>Sólo por E-mail</b></span><br>
                <INPUT type='radio' name='Envio' id='envioordinario' value='ordinario' onclick='CalcularModificacion()'><span><b>E-mail + En papel por correo ordinario</b></span><br>
                <INPUT type='radio' name='Envio' id='enviocertificado' value='certificado' onclick='CalcularModificacion()'><span><b>E-mail + En papel por correo certificado</b></span><br>
        </div>
    </div>
    <div class='caja-formulario'>
        <h4>PASO 4: ELIGE MÉTODO DE PAGO - Vea las condiciones abajo</h4>
        <div class='radios'>
                <INPUT type='radio' name='Pago' id='transf' value='transf' onclick='CalcularModificacion()' checked><span><b>Transferencia Bancaria</b></span><br>
                <INPUT type='radio' name='Pago' id='tarjeta' value='tarjeta' onclick='CalcularModificacion()'><span><b>Tarjeta de Crédito o Débito</b></span><br>
                <INPUT type='radio' name='Pago' id='paypal' value='paypal' onclick='CalcularModificacion()'><span><b>PayPal</b></span><br>
        </div>
    </div>
    <input type='submit' id='boton-modificar' name='boton-modificar' value='Confirmar Datos'>
    </td><td>
    <div class='caja-resultados'>
    <h4>PAGOS</h4>
            <p>CERTIFICADO:</p>
            <input type='text' id='Coste_Cert' maxlength='7' size='9' value='$fila[6]' name='Coste_Cert' readonly> <span class='euro'>€</span>
            <p>ENVIO:</p>
            <input type='text' id='Coste_Envio' maxlength='7' size='9' value='0.00' name='Coste_Envio' readonly> <span class='euro'>€</span>
            <p>METODO DE PAGO:</p>
            <input type='text' id='Coste_Pago' maxlength='7' size='9' value='0.00' name='Coste_Pago' readonly> <span class='euro'>€</span>
            <p>COSTE TOTAL:</p>
            <input type='text' id='Coste_Total' maxlength='7' size='9' value='0.00' name='Coste_Total' readonly> <span class='euro'>€</span>
            <hr class='lineapt'>
            <p>YA PAGADO:</p>
            <input type='text' id='Ya_Pagado' maxlength='7' size='8' value='$fila[7]' name='Ya_Pagado' readonly style='font-weight:bold'> <span class='euro'>€</span>
            <hr class='lineapt'>
            <p>FALTA POR PAGAR:</p>
            <input type='text' id='Por_Pagar' maxlength='7' size='8' value='0.00' name='Por_Pagar' readonly style='font-weight:bold'> <span class='euro'>€</span>
    </div>
    </form>
Y el resultado seria:



Ojala me puedan ayudar, porque he probado varias cosas y nada.

Saludos!

Última edición por lynzyag; 30/10/2013 a las 17:34
  #2 (permalink)  
Antiguo 31/10/2013, 03:54
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Problemas convirtiendo string a int

toFixed()
Cita:
Convert a number into a string...
Debes hacer un parseInt() a la hora de imprimirlo, no antes porque lo vuelves a cambiar

Última edición por PHPeros; 31/10/2013 a las 04:01
  #3 (permalink)  
Antiguo 31/10/2013, 05:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 3
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Problemas convirtiendo string a int

Vale muchas gracias ya lo he arreglado, que fallo mas tonto

Por si acaso le interesara alguna vez a alguien aquí está la solución:

Código:
function CalcularModificacion() 
{
     var total = 0;
     var pago = 0;
     var envio = 0;
     var pagar = 0;

     var certificado = parseInt(document.getElementById("Coste_Cert").value);
     var envio1 = document.getElementById("envioemail").checked;
     var envio2 = document.getElementById("envioordinario").checked;
     var envio3 = document.getElementById("enviocertificado").checked;
     var pago1 = document.getElementById("transf").checked;
     var pago2 = document.getElementById("tarjeta").checked;
     var pago3 = document.getElementById("paypal").checked; 
     var YaPagado = parseInt(document.getElementById("Ya_Pagado").value);


    if (envio1 == true) {
        envio = 0;
    }else if (envio2 == true) {
        envio = 4;
    }else if (envio3 == true) {
        envio = 6.5;
    }

    if (pago1 == true) {
        pago = 0;
    }else if (pago2 == true || pago3 == true) {
        pago = certificado * 0.034;
    }

    total = certificado + envio + pago;
    pagar = total - YaPagado;

    total = total.toFixed(2);
    pago = pago.toFixed(2);
    pagar = pagar.toFixed(2);
    envio = envio.toFixed(2);

    document.getElementById("Coste_Envio").value = envio;
    document.getElementById("Coste_Pago").value = pago;
    document.getElementById("Coste_Total").value = total;
    document.getElementById("Por_Pagar").value = pagar;
}

Etiquetas: formulario, html, input, int, php, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:51.