Laravel показать подпредставление с условием после успеха AJAX - PullRequest
0 голосов
/ 12 октября 2018

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

Что я сделал:

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

        $.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) { 
            }
        });
    

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

Спасибо, с уважением

1 Ответ

0 голосов
/ 12 октября 2018

Поместите 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').

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