Проблемы с "Выбранный выбор" в Laravel - PullRequest
0 голосов
/ 10 января 2020

Привет, как дела? У меня есть неудобство с динамическим выбором, в котором я беру "матрицу", и в зависимости от того, что второй выбор заряжает меня с "ensayos". В форме «создать» проблемы нет, проблема в форме «редактировать», так как, когда я начинаю редактирование, я должен показывать данные выбранного поля в «matriz», поэтому, если мне нужно изменить, «Анализы не делают». выбор из них в соответствии с предварительно загруженным "matriz". Например, если при вводе пробы я вставляю «matriz»: Вода, когда я вхожу в форму редактирования, чтобы выбор «ensayos» принял изменения, я должен выбрать другой «matriz» (например: Food) и снова выберите «Вода», чтобы фильтр снова генерировался в поле «ensayos», и вы сможете выбрать только тесты воды.

Я оставляю код, чтобы вы могли видеть, что я говорю:

<div class="form-group">
   <label for="matriz">Matriz:</label><br>
     <select class="chosen-select" name="matriz_id" id="matriz">
        <option disabled selected>Seleccionar Matriz</option>
           @foreach($matrizs as $matriz)
               <option value="{{$matriz->id}}" @if(($muestra->matriz_id) == ($matriz->id)) selected="selected" @endif>{{$matriz->matriz}}</option>
           @endforeach
     </select>
</div>

<div class="form-group ml-4">
   {!! Form::Label('ensayo_id', 'Ensayos:') !!}
       <select class="chosen-select" name="ensayo_id[]" id="ensayos" multiple="multiple" style="width: 950px">
           @forelse($selects as $sel)
               @foreach($ensayos as $ensayo)
                   <option value="{{$ensayo->id}}" @if(($sel->ensayo_id) == ($ensayo->id)) selected="selected" @endif>{{$ensayo->ensayo}}</option>
               @endforeach
           @empty
               @foreach($ensayos as $ensayo)
                   <option value="{{$ensayo->id}}">{{$ensayo->ensayo}}</option>
               @endforeach
           @endforelse
       </select>
</div>

И это код в jQuery:

$('#matriz').change(function(e){
    var matriz_id = e.target.value;
    $.get('/dsa/public/lab/muestras/'+matriz_id+'/ensayos', function(data){ 
        $('#ensayos').empty();       
        var html_select = '';
        for (var i=0; i<data.length; ++i)
        html_select += '<option value="'+data[i].id+'">'+data[i].ensayo+'</option>';
        $('#ensayos').html(html_select);
        $('#ensayos').chosen();
        $('#ensayos').trigger("chosen:updated");   
    });
});

Я пытался внести изменения в:

$('#matriz').change(function(e)

Изменение на:

$('#matriz').ready

но не сработало.

Вы можете подумать, как я могу это исправить? От уже большое спасибо

1 Ответ

1 голос
/ 10 января 2020

Если я правильно понимаю вашу проблему, я думаю, вы можете загрузить записи ensayos, когда загрузка страницы завершится и в поле matriz будет установлено правильное значение. Я изменил только две строки по сравнению с вашим кодом. Запустите этот код, когда документ загружен:

$(document).ready(function() {

, а затем прочитайте выбранное значение matriz

var matriz_id = $('#matriz').val();

Попробуйте этот код:

$(document).ready(function() {
    var matriz_id = $('#matriz').val();
    $.get('/dsa/public/lab/muestras/'+matriz_id+'/ensayos', function(data) { 
       // here your code as above
       ...
});
...