Добавить данные в представление после успеха ajax без перезагрузки страницы

В модальном режиме есть два поля ввода, вводимые данные отправляются контроллеру, обрабатываются там и затем сохраняются в базе данных.

После успешного сохранения данных модальное окно сбрасывается и скрывается.

Как я могу добавить в представление только что созданные данные (интерес), не перезагружая страницу? И что существуют те же функции, что и у уже существующего элемента?

Я использую Bootstrap во фронтенде и Laravel в бэкэнде

Аякс:

<script type = "text/javascript">
    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
        }
    });

    $("#storeinterest").click(function(e){
        e.preventDefault();
        var itag = $('#create_itag').val();
        var name = $('#create_name').val();

        $.ajax({
            type:'POST',
            url:'{{URL::route('interests.store')}}',
            data:{name:name, itag:itag},
            success:function(data){
                _toastr_new(data.message, "top-full-width", "success", false, '.toastr-notify', 0);
                $('#create_itag').tagsinput('removeAll');
                $('#create_name').val('');
                $('#addInterest').delay(1000).fadeOut(450);

                setTimeout(function(){
                    $('#addInterest').modal("hide");
                }, 1500);
            }
        });
    });
</script>

Ответ от контроллера:

$data = [
                'message' => trans('messages.newinterest'),
                'interest' => $interest
            ];
            return response()->json($data, 200);

Вид:

<div class = "infinite-scroll">
                <div class = "row">
                    @foreach ($interests as $interest)
                        <div class = "col-md-4 col-sm-6 col-xs-12 mtm-10 mtmm-115">
                            <div class = "box-icon box-icon-center box-icon-round box-icon-large text-center">
                                <div class = "front rahmen_iboard box-shadow-7">
                                    <div class = "box1" style = "background-color:#FFFFFF">
                                        <div class = "box-icon-title">
                                            <div class = "z-100">
                                                <a class = "dropdown-toggle" data-toggle = "dropdown" href = "#">
                                                    <i class = "ico-xs glyphicon glyphicon-option-vertical float-right pt-8"></i>
                                                </a>
                                                <ul class = "dropdown-menu dropdown-left-iboard dropdown-menu-right">
                                                    <li class = "dropdown-item">
                                                        <a class = "p-2" data-toggle = "modal" data-target = "#updateInterest{{$interest->id}}"><i class = "ico-xs glyphicon glyphicon-globe"></i> Bearbeiten</a>
                                                        <a class = "p-2" data-toggle = "modal" data-target = "#delteInterest{{$interest->id}}"><i class = "ico-xs fa fa-remove"></i> Löschen</a>
                                                    </li>
                                                </ul>
                                            </div>
                                            <div class = "img-ausschnitt">
                                                <a class = "img-hover" href = "{{URL::route('interests.show', $interest->id)}}">
                                                    <img class = "img-fluid" src = "@if ($interest->mostVote) {{ Storage::url($interest->mostVote->postsImages->random()->image_thumbnail) }} @else {{ Storage::url('defaults/posts/nopost_interest.jpg') }}  @endif" alt = "" />
                                                </a>
                                            </div>
                                            <div class = "progress">
                                                <div class = "@if ($interest->ratio < 20) progress-bar-danger @else progress-bar-primary @endif h-7" aria-valuenow = "60" aria-valuemin = "0" aria-valuemax = "100" style = "width:{{$interest->ratio}}%;">
                                                </div>
                                            </div>
                                            <span class = "mdl-badge" data-badge = "2"><b> {{$interest->name}}</b></span>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                        @include("modal.delteInterest")
                        @include("modal.updateInterest")
                    @endforeach
                </div>
                {{$interests->links()}}
            </div>

какой интерфейсный фреймворк вы используете? у вас есть разные возможности добиться того, чего вы хотите. вы можете подтолкнуть сохраненный интерес к уже имеющемуся массиву интересов, а затем обновить () свои компоненты в вашем представлении, или вы можете запустить функцию ajax, которая извлекает последние вставленные данные из вашей БД, а затем запускает функцию обновления вашей структуры.

Iamnino 09.01.2019 14:00

Какое лучшее решение моей проблемы? Я новичок в Ajax и только начинаю свои первые шаги. Я использую Bootstrap во фронтенде и Laravel в бэкэнде

slickness 09.01.2019 14:03
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
64
0

Другие вопросы по теме