Установка выпадающих значений внутри Javascript (JSON), сгенерированных строки HTML и PHP - PullRequest
0 голосов
/ 15 октября 2019

Я делаю AJAX-запрос, который выводит массив json, содержащий 7 или 8 элементов данных клиента. Я вставляю элементы json в строку html, которая содержит блоки выбора, динамически генерируемые циклами php foreach. Я пытаюсь добавить эту строку в родительский раздел дальше вверх по странице с помощью javascript.

Проблема, с которой я столкнулся, заключается в том, что я хотел бы установить текущие значения полей выбора с идентификаторами, которыегенерируется из JSON. Они хранятся в переменных javascript, но я пытаюсь сравнить их с значениями, сгенерированными php из базы данных, и, если они mathc, вывести тег «selected = selected».

Любые советы о том, как лучше всегоделать это будет? В настоящее время я пытаюсь использовать синтаксис лезвия laravel, @if($daypart->daypart_id == ' + json[2][i]["leave_day_part_id"] + ') selected="selected" @endif, как показано в коде ниже.

Спасибо,

Роб

Лондон, Великобритания

                        if(json[2] != ""){
                            i = 0;

                            json[2].forEach(function(leave){

                                leave_requests.push(
                                    '<div class="row">' +
                                        '<div class="col-sm-2 low-padding-right">' +
                                            '<input type="text" value="' + format_date(json[2][i]['leave_date'], 'leave') + '" name="leave_date" class="form-control" readonly>' +
                                        '</div>' + 
                                        '<div class="col-sm-1 low-padding">' +
                                            '<select class="form-control" name="day_part" id="day_part" style="width: 100%;">' +
                                                '<?php foreach($dayparts as $daypart){ ?>' +
                                                    '<option value="{{ $daypart->daypart_id }}" @if($daypart->daypart_id == ' + json[2][i]["leave_day_part_id"] + ') selected="selected" @endif >{{$daypart->daypart}}</option>' +
                                                '<?php } ?>' +
                                            '</select>' +
                                        '</div>' +
                                        '<div class="col-sm-1 low-padding">' +
                                            '<select class="form-control" name="leave_type" id="leave_type" style="width: 100%;">' +
                                                '<?php foreach($leave_types as $leave_type){ ?>' +
                                                    '<option value="{{ $leave_type->leave_type_type_id }}">{{ $leave_type->leave_type_type }}</option>' +
                                                '<?php } ?>' +
                                            '</select>' +
                                        '</div>' +
                                        '<div class="col-sm-4 low-padding">' +
                                            '<input type="text" value="' + filter_null_values(json[2][i]['leave_notes']) + '" name="leave_notes" class="form-control">' +
                                        '</div>' +
                                        '<div class="col-sm-1 low-padding">' +                            
                                            '<input type="text" value="' + (json[2][i]['employee_first_name']).charAt(0) + json[2][i]['employee_last_name'] + '" name="last_updated" class="form-control" readonly>' +
                                        '</div>' +
                                        '<div class="col-sm-2 low-padding">' +            
                                            '<input type="text" value="' + format_date(json[2][i]['leave_updated_time'], 'updated') + '" name="leave_updated_time" class="form-control" readonly>' +
                                        '</div>' +
                                        '<div class="col-sm-1 low-padding">' +
                                            '<select class="form-control" name="status" id="status" style="width: 100%;">' +
                                                '<?php foreach($status_names as $name){ ?>' +
                                                    '<option value="' + json[2][i]['status_name'] + '" name="status" class="form-control">' + json[2][i]['status_name'] + '</option>' +
                                                '<?php } ?>' +
                                            '</select>' +
                                        '</div>' +
                                    '</div>'                            
                                );
                                i++;
                            });
                            $(".holiday-forms").show();

                            $(".holiday-forms").html(                    
                                    leave_requests
                            );
...