Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/05/2015, 15:11
Montes28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Como puedo mejorar el siguiente codigo

hola amigos que me recomiendan para mejor el siguiente código, intente utilizar un switch pero no me funciona.

Lo que pretendo es realizar sumas dependiendo de si se marca o no un grupo decheckbox, estos checkbox están agrupados por áreas.

los checkbox los creo desde base de datos

Código PHP:
Ver original
  1. @foreach($reglas as $key =>  $regla)
  2.  
  3.      @if ($area != $regla->area->nombre)
  4. $area = $regla->area->nombre;
  5.  
  6. @endif
  7. <input type="checkbox" id="{{ $regla->area->id }}" class="estado" value="{{ $regla->valor_1 }}">
  8. @endforeach

Código Javascript:
Ver original
  1. var   sum1 = 0;
  2.         sum2 = 0;
  3.         sum3 = 0;
  4.         sum4 = 0;
  5.         sum5 = 0;
  6.         totalArea1 = 0;
  7.         totalArea2 = 0;
  8.         totalArea3 = 0;
  9.         totalArea4 = 0;
  10.         totalArea5 = 0;
  11.     $(".estado").change(function() {
  12.    
  13.  
  14.     if(this.checked) {
  15.         var area = this.id;
  16.  
  17.         if (area == 1) {
  18.         sum1 += Number($(this).val());
  19.         totalArea1 = sum1*0.7;
  20.         $('#checkme').attr('checked',true);
  21.        
  22.         };
  23.         if (area == 2) {
  24.             sum2 += Number($(this).val());
  25.             totalArea2 = sum2*0.1;
  26.         };
  27.         if (area == 3) {
  28.             sum3 += Number($(this).val());
  29.             totalArea3 = sum3*0.1;
  30.         };
  31.         if (area == 4) {
  32.             sum4 += Number($(this).val());
  33.             totalArea4 = sum4*0.05;
  34.         };
  35.         if (area == 5) {
  36.             sum5 += Number($(this).val());
  37.             totalArea5 = sum5*0.05;
  38.         };          
  39.  
  40.  
  41.     }else{
  42.         //var area = this.id;
  43.         //alert(area);
  44.         var area = this.id;
  45.         if (area == 1) {
  46.         sum1 -= Number($(this).val());
  47.         totalArea1 = sum1*0.7;
  48.         $('#checkme').attr('checked',false);
  49.         }
  50.         if (area == 2) {
  51.         sum2 -= Number($(this).val());
  52.         totalArea2 = sum2*0.1
  53.         }
  54.         if (area == 3) {
  55.         sum3 -= Number($(this).val());
  56.         totalArea3 = sum3*0.1;
  57.         }
  58.         if (area == 4) {
  59.         sum4 -= Number($(this).val());
  60.         totalArea4 = sum4*0.05;
  61.         }
  62.         if (area == 5) {
  63.         sum5 -= Number($(this).val());
  64.         totalArea5 = sum5*0.05;
  65.         }
  66.     }
  67.  
  68.  
  69.     $('#Sis').html(Math.round(sum1 * 100) / 100);
  70.     $('#Def').html(Math.round(sum2 * 100) / 100);
  71.     $('#Geo').html(Math.round(sum3 * 100) / 100);
  72.     $('#Geof').html(Math.round(sum4 * 100) / 100);
  73.     $('#Geol').html(Math.round(sum5 * 100) / 100);
  74.  
  75.     var ia=(totalArea1 + totalArea2 + totalArea3 + totalArea4 + totalArea5)*100;
  76.  
  77.     $('#IA-1').html(ia.toFixed(2));
  78. });