Veréis me he encontrado con un problema y después de un montón de pruebas tengo que recurrir a vosotros para intentar solucionarlo, por lo tanto os doy las gracias por anticipado.
Tengo el código que expongo a continuación, lo que pretendo es que se pueda calcular un costo a partir de seleccionar una Cantidad de una base de datos, de la misma cojo la "TarifaMillar" hago una operación y la muestro en "SubTotal_Precio_Base" hasta aquí todo bien, al entrar en la página me muestra el total de la cantidad menor que se encuentra en la base de datos, ESTO ES CORRECTO, y si escojo otra cantidad me actualiza todo la cantidad, el precio por millar y el "SubTotal_Precio_Base".
Pero a ese "SubTotal_Precio_Base" tengo que seguir sumándole otras cantidades y doy la opción con un select "sel_caras_impresion" de elegir "1 cara" o "2 caras" segun lo que se elije hay un value distinto que quiero mostrar en el div "Valor_Caras_Impresion" para luego sumarlo al valor "SubTotal_Precio_Base" y mostrarlor en otro div que se llamara "TOTAL".
Mi problema es que de entrada NO me muestra en el div "Valor_Caras_Impresion" el value que hay por defecto seleccionado en el select "sel_caras_impresion", solo si cambio entre 1 cara y 2 caras en dicho select me muestra el valor, pero de entrada NO.
¿Como lo soluciono? GRACIAS
Código:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" > <link rel="stylesheet" href="../css/tlc.css" type="text/css" /> </head> <?php require_once('../Connections/miconexion.php'); mysqli_query($conexion, "SET NAMES 'utf8'"); ?> <body> <div id="Selector"> <select name="selCantidad" id="selCantidad" class="select" onchange="mostrar(this, 'Cantidad', 'TarifaMillar', 'SubTotal_Precio_Base', 'Valor_Caras_Impresion');"> <?php $tablaseleccion = mysqli_query($conexion,"SELECT * FROM tarjetas WHERE Activacion = '1' ORDER BY Cantidad ASC"); while ($registroseleccion = mysqli_fetch_array($tablaseleccion )) echo "<option value='".$registroseleccion['Cantidad']."' data-description='".$registroseleccion['Precio_Millar']."'> ".number_format($registroseleccion['Cantidad'], 0, ',', '.')."</option>"; mysqli_free_result($tablaseleccion); ?> </select> </div> <div id="Cantidad" class="presentacion_cantidad"></div> <div id="TarifaMillar" class="tarifa1"></div> <div id="SubTotal_Precio_Base" class="tarifa1"></div> <div id="Impresion"> <select name="sel_caras_impresion" id="sel_caras_impresion" class="select" onchange="mostrar(this, 'Valor_Caras_Impresion');"> <option value="5" selected>1 cara</option> <option value="7">2 caras</option> </select> </div> <div id="Valor_Caras_Impresion" class="tarifa1"></div> <script type="text/javascript"> function mostrar( obj, Cantidad, TarifaMillar, TarifaDiv, Valor_Caras_Impresion ){ var tarifamillar = document.getElementById(TarifaMillar) ; var container1 = document.getElementById(Cantidad) ; container1.innerHTML = obj[ obj.selectedIndex ].value.replace(/\B(?=(\d{3})+(?!\d))/g, ".") ; document.getElementById("Valor_Caras_Impresion").value = document.getElementById("sel_caras_impresion").value var description = obj[ obj.selectedIndex ].dataset.description; if (description == 0){ } else { tarifamillar.innerHTML = description; } SubTotal_Precio_Base=parseInt(document.getElementById(TarifaMillar).innerHTML.replace('.', ""))*parseInt(document.getElementById(Cantidad).innerHTML.replace('.', ""))/1000; document.getElementById(TarifaDiv).innerHTML = SubTotal_Precio_Base.toFixed(0) +' €'; } mostrar(document.getElementById("selCantidad"),"Cantidad", "TarifaMillar", "SubTotal_Precio_Base", "Valor_Caras_Impresion"); </script> </body> </html>