Foros del Web » Programando para Internet » PHP »

problemas con select

Estas en el tema de problemas con select en el foro de PHP en Foros del Web. Amigos tengo un problema con un select. Resulta que cuando le pongo la clase: class="browser-default" me funciona perfectamente para el cálculo del porcentaje, pero cuando ...
  #1 (permalink)  
Antiguo 06/08/2017, 09:00
Avatar de aviweb2015  
Fecha de Ingreso: abril-2016
Ubicación: venezuela
Mensajes: 215
Antigüedad: 8 años, 7 meses
Puntos: 1
problemas con select

Amigos tengo un problema con un select. Resulta que cuando le pongo la clase: class="browser-default" me funciona perfectamente para el cálculo del porcentaje, pero cuando le quito la clase al select y dejo el select en su estado normal:
Código:
<select name="porcentaje" onblur="calcula_porcentaje(this.form)" required>
no me funciona el calculo del porcentaje, no se si sera algún problema con el framework de Materialize o me faltaría agregar algo en mi función Javascript. Anexo el código abajo:

formulario

Código PHP:
Ver original
  1. <form class="col s12 m12 l12" action="anadiradelantos" name="form" method="POST">
  2.  
  3. <br>
  4.  
  5. <div class="row">
  6. <div class="input-field col s12 m6">
  7. <input id="icon_prefix" class="black-text" type="text" name="cod_ticket" placeholder="Cód Ticket"  autocomplete="off" title="Disculpa, el n° de recibo debe contener nimino 4 digitos" pattern="[0-9]{4,10}" required/>
  8. </div>
  9.  
  10.  
  11. <div class="input-field col s12 m6">
  12. <select name="id_puntos" required/>
  13. <option value="" disabled selected>Punto:</option>
  14. <?php
  15. $consulta = $DB_con->query("SELECT * FROM puntos ORDER BY id_puntos");
  16. while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {
  17. ?>
  18. <option value="<?php echo $linea['id_puntos'] ;?>"><?php echo $linea['puntos'] ;?></option>
  19. <?php
  20. }
  21. ?>
  22. </select>
  23. </div>
  24. </div>
  25.  
  26. <div class="row">
  27. <div class="input-field col s12 m3">
  28. <input id="icon_prefix"  type="text" class="black-text" name="monto" placeholder="Monto" autocomplete="off" title="Disculpa, seleccione una fecha" pattern="[0-9]{4,8}" required/>
  29. </div>
  30.  
  31.  
  32. <div class="input-field col s12 m3">
  33.      <select name="porcentaje"  onblur="calcula_porcentaje(this.form)" required/>
  34.         <option value="" disabled selected>Porcentaje:</option>
  35. <?php
  36.      $consulta = $DB_con->query("SELECT * FROM porcentaje ORDER BY id_porcentaje");
  37.        while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {
  38.    ?>
  39.      <option value="<?php echo $linea['porcentaje'] ;?>"><?php echo $linea['porcentaje'] ;?>%</option>
  40. <?php
  41.       }
  42. ?>
  43.       </select>
  44. </div>
  45.  
  46.  
  47. <div class="input-field col s12 m3">
  48. <input id="icon_prefix"  type="text" class="black-text" name="ganancia"  placeholder="Ganancia"  readonly/>
  49. </div>
  50.  
  51.  
  52. <div class="input-field col s12 m3">
  53. <input id="icon_prefix"  type="text" class="black-text" name="total" placeholder="Total"  autocomplete="off" required/>
  54. </div>
  55. </div>
  56.  
  57.  
  58. <div class="center-align">
  59.  
  60. <button class="btn waves-effect blue-grey darken-4 btn-medium" type="submit" name="guardar">Crear Registro</button>
  61.  
  62. <button class="btn waves-effect blue-grey darken-4 btn-medium" type="reset" name="guardar">Limpiar</button>
  63.  
  64.  
  65. <a href='adelantos' button class='btn waves-effect blue-grey darken-4 btn-medium' type='submit'>Volver</a>
  66.  
  67. </div>
  68.  
  69.           <br>
  70.  
  71. <?php
  72. date_default_timezone_set('America/Caracas');
  73. $hora = new Datetime($linea['hora']);
  74. $linea['hora'] = $hora->format("h:i:sA");
  75. ?>
  76. <input type='hidden' name='hora' value='<?php echo $linea['hora']; ?>' />
  77. <input type="hidden" name="fecha" value="<?php echo date("Y-m-d"); ?>" />
  78.  
  79. <?php
  80. $consulta = $DB_con->query("SELECT * FROM usuarios WHERE id_nivel='Administrador'");
  81. while ($linea = $consulta->fetch(PDO::FETCH_ASSOC)) {
  82. ?>
  83. <input type="hidden" name="id_usuarios" value="<?php echo $linea['id_usuarios'] ;?>">
  84. <?php
  85. }
  86. ?>
  87.  
  88.  
  89.                    </form>


mi función

Código Javascript:
Ver original
  1. <script>
  2.    $(document).ready(function() {
  3.     $('select').material_select();
  4.     $(".button-collapse").sideNav();
  5.     $(".dropdown-button").dropdown();
  6.     $('.datepicker').pickadate({
  7.    
  8.     selectMonths: true, // Creates a dropdown to control month
  9.     selectYears: 15, // Creates a dropdown of 15 years to control year
  10.     format: 'yyyy-mm-dd'
  11.  
  12.   });
  13.   });
  14.   </script>
  15.  
  16.  
  17. <script type="text/javascript">
  18. $(document).ready(function(){
  19.   $("#hide").click(function(){
  20.     $("#element").hide();
  21.   });
  22.  
  23. });
  24. </script>
  25.  
  26. <script language="javascript">
  27.  
  28. function calcula_porcentaje(form) {
  29.  
  30.   var monto = form.monto.value;
  31.   var porcentaje = form.porcentaje.value;
  32.   var total = form.total.value;
  33.  
  34.   if (porcentaje.length === 0) { return; }
  35.   if (monto.length === 0 && total.length === 0) { return; }
  36.  
  37.   porcentaje = parseInt (porcentaje);
  38.  
  39.   var resultado = 0;
  40.  
  41.   if (total.length === 0) {
  42.  
  43.     monto = parseInt(monto);
  44.     resultado = monto * porcentaje/100;
  45.  
  46.     form.total.value = monto + resultado;
  47.  
  48.  
  49.     } else {
  50.  
  51.     total = parseInt(total);
  52.     resultado = total * porcentaje/100;
  53.    
  54.     form.monto.value = total - resultado;
  55.  
  56.     }
  57.  
  58.   form.ganancia.value = Math.round(resultado);  
  59.  
  60. }
  61.  
  62. </script>
__________________
yoclens avilan

Etiquetas: javascript, select
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 14:11.