Заполните введенное значение ajax (Laravel6) - PullRequest
0 голосов
/ 20 января 2020

У меня проблема с заполнением ввода после выбора в выпадающем меню. У меня есть таблица в моей базе данных с контактными данными. В моей форме есть раскрывающийся список, в котором отображаются имена людей, который, как только я нажимаю на имя, заполняет поля данными. Для этого я использую Ajax с Jquery, мой запрос обрабатывается ответом, но в моих полях ничего не отображается. Как решить эту проблему?

Раскрывающийся список:

       <select class="form-control select2 col-md-7" id="selInscrit" name="selInscrit">
            @foreach($inscrit as $inscrits)
            <option value="{{$inscrits->INS_ID}}">{{$inscrits->INS_CIVILITE}} {{$inscrits->INS_NOM}} {{$inscrits->INS_PREN}} {{$inscrits->INS_NUM_RUE}} {{$inscrits->INS_Rue}}</option>
            @endforeach
        </select>

Форма:

<form>
    <div class="form-group row">
        <div class="col-lg-1">
            <label for="INS_CIVILITE">Civilité</label>
            <select class="form-control form-control-sm" id="INS_CIVILITE" name="INS_CIVILITE">
                <option value="" selected="selected"></option>
                <option value="1">Mme</option>
                <option value="2">Mlle</option>
                <option value="3">M.</option>
            </select>
        </div>
        <div class="col-lg-4">
            <label for="INS_NOM">Nom</label>
            <input class="form-control form-control-sm" id="INS_NOM" name="INS_NOM" value=""  type="text">
        </div>
        <div class="col-lg-3">
            <label for="INS_PREN">Prénom</label>
            <input class="form-control form-control-sm" id="INS_PREN" name="INS_PREN" value=""  type="text">
        </div>
        <div class="col-lg-2">
            <label for="INS_NAISS">Année Naiss</label>
            <input class="form-control form-control-sm" id="INS_NAISS" name="INS_NAISS" value="" type="text">
        </div>
        <div class="col-lg-2">
            <label for="INS_AGE">Age</label>
            <input class="form-control form-control-sm" id="INS_AGE" name="INS_AGE" value="" type="text">
        </div>
    </div>
    <div class="form-group row">
        <div class="col-lg-1">
            <label for="INS_NUM_RUE"># Rue</label>
            <input class="form-control form-control-sm" id="INS_NUM_RUE" name="INS_NUM_RUE" value="" type="text">
        </div>
        <div class="col-lg-9">
            <label for="INS_Rue">Libellé voie</label>
            <input class="form-control form-control-sm" id="INS_Rue" name="INS_Rue" value="" type="text">
        </div>
        <div class="col-lg-2">
            <label for="INS_TEL1">Téléphone 1</label>
            <input class="form-control form-control-sm" id="INS_TEL1" name="INS_TEL1" value="" type="text">
        </div>
    </div>
    <div class="form-group row">
        <div class="col-lg-8">
            <label for="INS_OBS">Observation</label>
            <input class="form-control form-control-sm" id="INS_OBS" name="INS_OBS" value="" type="text">
        </div>
        <div class="col-lg-2">
            <label for="INS_DATE">Date d'inscription</label>
            <input class="form-control form-control-sm" id="INS_DATE" name="INS_DATE" value="" type="text">
        </div>
        <div class="col-lg-2">
            <label for="INS_TEL2">Téléphone 2</label>
            <input class="form-control form-control-sm" id="INS_TEL2" name="INS_TEL2" value="" type="text">
        </div>
    </div>
</form>

Скрипт для Ajax:

<script>
$('#selInscrit').change(function() {
    var id = $(this).val();
    var url = '{{ route("show", ":id") }}';
    url = url.replace(':id', id);

    $.ajax({

        url: url,
        type: 'get',
        dataType: 'json',
        success: function(response) {
            if (response != null) {
                $('#INS_CIVILITE').val(response.INS_CIVILITE);
                $('#INS_NOM').val(response.INS_NOM);
                $('#INS_PREN').val(response.INS_PREN);
                $('#INS_NAISS').val(response.INS_NAISS);
                $('#INS_AGE').val(response.INS_AGE);
                $('#INS_NUM_RUE').val(response.INS_NUM_RUE);
                $('#INS_Rue').val(response.INS_Rue);
                $('#INS_TEL1').val(response.INS_TEL1);
                $('#INS_OBS').val(response.INS_OBS);
                $('#INS_DATE').val(response.INS_DATE);
                $('#INS_TEL2').val(response.INS_TEL2);
            }

        }

    });
});

Контроллер:

public function show($id = 0)
{
    $data = Inscrit::where('INS_ID', $id)->first();
    dd($id, $data);
    return response()->json($data);
}

База данных

Форма

Ответ

1 Ответ

0 голосов
/ 20 января 2020

Сначала вы должны удалить dd($id, $data), потому что функция dd сбрасывает данные переменные и завершает выполнение скрипта

Что-то вроде

success: function (data) {
    if(data === undefined) {
        alert('empty');
        return;
    }
    $('#INS_CIVILITE').val(response.INS_CIVILITE);
    $('#INS_NOM').val(response.INS_NOM);
    $('#INS_PREN').val(response.INS_PREN);
    //...
}  

должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...