From Sexy Hamster, 2 Months ago, written in PHP.
This paste is a reply to Untitled from Scanty Gibbon
- view diff
Embed
  1. // blade
  2.  
  3. <div class="form-group{{ $errors->has('id_carrera') ? ' has-error' : '' }}">
  4.                         <label for="id_carrera" class="col-sm-4 control-label">Carrera</label>
  5.                         <div class="col-sm-10">
  6.                             {!! Form::select('id_carrera', $carreras, null, ['class' => 'form-control selectpicker', 'id' => 'id_carrera', 'placeholder' => 'Seleccione', 'required', 'data-style'=>'btn select-with-transition']) !!}
  7.                         </div>
  8.                     </div>
  9.  
  10.                     <div class="form-group{{ $errors->has('id_modalidad') ? ' has-error' : '' }}">
  11.                         <label for="id_modalidad" class="col-sm-4 control-label">Modalidad</label>
  12.                         <div class="col-sm-10">
  13.                             {!! Form::select('id_modalidad', array(), null, ['class' => 'form-control selectpicker', 'id' => 'id_modalidad', 'placeholder' => 'Seleccione', 'required', 'data-style'=>'btn select-with-transition']) !!}
  14.                         </div>
  15.                     </div>
  16.            
  17.            <script>        
  18. if($('#id_carrera').val() != '' && $('#id_carrera').val() != null) {
  19.       $('#id_carrera').val("");
  20.       $('#id_carrera').selectpicker('refresh');
  21.       $('#id_modalidad').selectpicker('refresh');
  22.                 }
  23.                
  24.                 $('#id_carrera').change(function(){
  25.         if($(this).val() != '' && $(this).val() != null) {
  26.           $.ajax({
  27.               url: "{{ route('postulaciones.modalidad') }}",
  28.               type: 'GET',
  29.               data: 'id_carrera=' + $(this).val(),
  30.               'beforeSend': function(){
  31.                 $("#id_modalidad").find("option").remove();
  32.                                                         $("#id_modalidad").append($("<option>", {
  33.                                                             value: "",
  34.                                                             text: "Cargando..."
  35.                                                         }));                
  36.                 $('#id_modalidad').selectpicker('refresh');
  37.               },
  38.               success: function(data) {
  39.                 $("#id_modalidad").find("option").remove();
  40.                 var option = $("<option></option>")
  41.                   .attr("value", "")
  42.                   .text("Seleccione");
  43.                 $('#id_modalidad').append(option);
  44.                 $.each(data, function(key, value) {
  45.                   $.each(value, function(key, value) {
  46.                                           var option = $("<option></option>")
  47.                           .attr("value", key)
  48.                           .text(value);
  49.                     $('#id_modalidad').append(option);
  50.                   });
  51.                 });
  52.                 $('#id_modalidad').selectpicker('refresh');
  53.               }
  54.           });
  55.     } else {
  56.       $("#id_modalidad").find("option").remove();
  57.       $("#id_modalidad").append($("<option>", {
  58.           value: "",
  59.           text: "Seleccione"
  60.       }));      
  61.       $('#id_modalidad').selectpicker('refresh');
  62.     }
  63.  
  64.     });
  65.                
  66.                   </script>    
  67.                  
  68.                  
  69.                      
  70.                    
  71. // web route
  72. <?php
  73. Route::get('/postulaciones/modalidad', 'PostulacionController@modalidad')->name('postulaciones.modalidad');
  74. ?>
  75.  
  76.  
  77.  
  78.  
  79. // Controller
  80. <?php
  81. public function modalidad(Request $request)
  82.     {
  83.       $convoc = new ConvocatoriaDetalle;
  84.       if(isset($request->type) && $request->type != null)
  85.          return $convoc->getConvocatoriaModalidad($request->id_carrera, $request->type);
  86.       return $convoc->getConvocatoriaModalidad($request->id_carrera);
  87.     }
  88.    
  89.   ?>  
  90.    
  91.  
  92.  
  93. // model
  94. <?php
  95. static public function getConvocatoriaModalidad ($unid_codigo, $tipo = 'A') {
  96.       $list = array();
  97.       $data = ConvocatoriaDetalle::whereHas('convocatoria',function($query) use ($tipo) {
  98.                                       $query->where('convoc_tipo', '=', $tipo);
  99.                                 })
  100.                     //->has('convocatoria.actividades')
  101.                     ->whereHas('convocatoria.actividades',function($query) use ($tipo) {
  102.                         $query->whereIn('id_actividad', ['1', '2']);
  103.                     })
  104.                     ->whereHas('unidadAcademica',function($query) use ($unid_codigo) {
  105.                               $query->where('unid_codigo', '=', $unid_codigo);
  106.                     })
  107.                     ->pluck('mod_codigo_modalidad');
  108.       if(!empty($data)) {
  109.         foreach ($data as $value) {
  110.           $modalidad = Modalidad::where('mod_codigo', $value)->first();
  111.           if($modalidad != null)
  112.             $list[$value] = $modalidad->mod_nombre;
  113.         }
  114.       }
  115.       asort($list);
  116.       $lista = array();
  117.       foreach ( $list as $key => $value) {
  118.         array_push($lista, [$key => $value]);
  119.       }
  120.       return $lista;
  121.     }
  122.     ?>