@flammerman
Web Developer / И фронт и сервер

Как в bootstrap подгрузить серверные данные в модальное окно используя a.href=url?

Приветствую всех

Помогите пожалуйста советом.

В общем есть 2 кнопки:
<a href="http://site.ru/url1" data-target="#modal" data-toggle="modal" class="btn btn-default btn-sm entity-btn-params"><i class="icon icon-th-large"></i> Окно 1</a>
<a href="http://site.ru/url2" data-target="#modal" data-toggle="modal" class="btn btn-default btn-sm entity-btn-params"><i class="icon icon-picture"></i> Окно 2</a>


и само модальное окно, код расположен перед закрывающим тегом body
<!-- modal win -->
    <div class="modal" tabindex="-1" role="dialog" aria-hidden="true" id="modal">
    <div class="modal-dialog modal-lg">
    <div class="modal-content">
        <!-- modal content load -->     
    </div>
    </div>
    </div>


Суть в том, что GET срабатывает только 1 раз, при нажатии на любую из кнопок и данные полученные этим методом подгружаются в контентную область окна только 1 раз. Получается что мы нажимаем на кнопку 1 срабатывает ajax GET по url1 - все хорошо, дальше, если мы закроем окно и нажмем на кнопку2 с адресом href=url2, то никакого GET не происходит, соотвественно данные серверные не подгружаются, окно отлично открывается и понятное дело содержит данные из первого УРЛ.

P.S. Дополнительные "$(load) или $.ajax(GET | POST)" - не используются, только дефолтный js bootstrap
  • Вопрос задан
  • 984 просмотра
Решения вопроса 1
@flammerman Автор вопроса
Web Developer / И фронт и сервер
Кому будет интересно, сделал так:
//Событие клик на кнопки с классом .entity-btn-params
    $(document).on('click','.entity-btn-params',function(e){
        // Получаем урл        
        var url = $(this).attr('href');
        // Загружаем данные в модальное окно
        $('.modal-content').load(url);    
    })

// При закрытии окна чистим содержимое чтобы при загрузке другого окна изображение не "прыгало"    
    $('#modal').on('hidden.bs.modal',function(e){
        targetModalContent.html(' ');
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
edli007
@edli007
full stack, team lead
Илья: вместо
data-target="#modal" data-toggle="modal"
используйте событие
$( 'a').click( function(){
    .... //что вы там хотите сделать с href 
    $( '#modal').modal( 'show');
})
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы