Laravel показывает подвид с условием после успеха ajax

Я нахожусь в точке, где мне нужно показать успешное (или нет) сообщение, мне нравятся модальные окна, потому что они замораживают все позади (основной вид) и показывают эту маленькую рамку с каким-то сообщением. Я видел много примеров, но большинство из них показывают эти «предупреждающие» поля на странице, и я думаю, что у меня должно быть представление (называемое модальным), и каждый раз, когда мне нужно его показать, я просто передаю правильные аргументы, и представление будет объявиться.

Что я наделал:

  • Создал вид под названием модальный.
  • Создал контроллер с методом, который будет получать аргументы.
  • Создал маршрут к контроллеру.

        $.ajax({
            method: 'POST', 
            url: '/angariacoes/insertImovel',
            dataType: "json",
            data: {"_token": "{{ csrf_token()
            }}",values,eachImage,eachImageThumb},
            success: function(response){ 
                window.location.href='/popup/popup';
            },
            error: function(jqXHR, textStatus, errorThrown) { 
            }
        });
    

Но теперь, как мне показать это представление (с модальным кодом ускорения) как модальное? Кто угодно?

С уважением

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
0
325
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Поместите div внутри модального тела, а затем вы можете просто передать представление в качестве ответа:

$.ajax({
        method: 'POST', 
        url: '/angariacoes/insertImovel',
        dataType: "json",
        data: {"_token": "{{ csrf_token()
        }}",values,eachImage,eachImageThumb},
        success: function(response){ 
            $('#myAjaxTarget').html(response);
            $('#myModal').modal('show');
        },
        error: function(jqXHR, textStatus, errorThrown) { 
        }
    });

Контроллер:

return view('my_view', compact($data));

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

Итак, у меня есть the_main_view.blade.php, и в него я вставил:

<div class = "modal fade" id = "myModal" tabindex = "-1" role = "img" style = "overflow: hidden">
    <div class = "modal-dialog">
        <div class = "modal-content">
            <div class = "modal-header">
                <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true">&times;</button>
                <h4 class = "modal-title" id = "">Modal Title</h4>
            </div>
            <div class = "modal-body" id = "myAjaxTarget">

            </div>
            <div class = "modal-footer">
                <button type = "button" class = "btn btn-default" data-dismiss = "modal">Close</button>
            </div>
        </div>
    </div>
</div>

И у нас есть другое представление, my_view.blade.php, которое возвращается с помощью упомянутого выше метода контроллера:

<span>Literally any HTML</span>

Таким образом, ответ от вызова ajax - это просто my_view, который вы используете для замены HTML-содержимого #myAjaxTarget на. Таким образом, конечный модальный код будет выглядеть так:

<div class = "modal fade" id = "myModal" tabindex = "-1" role = "img" style = "overflow: hidden">
    <div class = "modal-dialog">
        <div class = "modal-content">
            <div class = "modal-header">
                <button type = "button" class = "close" data-dismiss = "modal" aria-hidden = "true">&times;</button>
                <h4 class = "modal-title" id = "">Modal Title</h4>
            </div>
            <div class = "modal-body" id = "myAjaxTarget">
                <span>Literally Anything</span>
            </div>
            <div class = "modal-footer">
                <button type = "button" class = "btn btn-default" data-dismiss = "modal">Close</button>
            </div>
        </div>
    </div>
</div>

Что затем отображается с помощью метода $ ('# myModal'). Modal ('show').

Мне очень жаль, Махурин, но не могли бы вы объяснить лучше, пожалуйста? у меня есть mainview.blade, где происходит ajax, затем у меня есть popupview.blade, где у меня есть модальный код. Я должен поместить код, который вы мне показали, в мой popupview.blade ?!

Japa 12.10.2018 18:13

вы говорите: «Поместите div в модальное тело», поэтому в моем popupview.blade я должен добавить этот кусок кода? я не понимаю

Japa 12.10.2018 18:24

Спасибо Махурин за развернутый ответ, привет

Japa 15.10.2018 11:46

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