Тема: AJAX в AJAX'е
Показать сообщение отдельно
  #1 (permalink)  
Старый 26.04.2017, 20:03
Интересующийся
Отправить личное сообщение для greengo86 Посмотреть профиль Найти все сообщения от greengo86
 
Регистрация: 09.09.2016
Сообщений: 19

AJAX в AJAX'е
Ребят, друзья, камрады... Никак не могу разобраться уже очч много времени - пишу на фреймворке yii2... Использую расширениеtabx:
echo TabsX::widget([
            'items'=>$opt,
            'position'=>TabsX::POS_ABOVE,
            'align'=>TabsX::ALIGN_CENTER,
            'encodeLabels'=>false
        ]);

Всё - супер, всё работает всё ходит и передаётся... Здесь я ренедерю(если кто в курсе о чём я) вид champ -
$html = $this->renderAjax('champ', [
            'main_page' => 0,
            'id' => $id,
            'play' => $play,
        ]);
        return Json::encode($html);

И вот в этом виде имеется информация:
<div class="col-md-12 text-center">
            <a class="show-last" href="<?php echo Url::to(['play/match', 'id' => $play[$k]['id']]) ?>"
               data-id="<?= $play[$k]['id'] ?>"><i class="glyphicon glyphicon-stats"></i>Статистика матча</a>
            <br>
            <hr class="style1">
        </div>

Здесь по клике на ссылочке с к классом .show-last я обрабатываю некоторую информацию:
$('.show-last').on('click', function(e){
        e.preventDefault();
        var id = $(this).data('id');
        $.ajax({
            url: '/play/match',
            data: {id: id},
            type: 'GET',
            success: function(res){
                // console.log(res);
                showStat(res);
            },
            error: function(){
                alert('Ошибка выдачи подробной статистики матча');
            }
        });
    });

И если всё хорошо - выполняю showStat():
function showStat(match){
        $('#match .modal-body').html(match);
        $('#match').modal();
    }

А в layout'е указано то модальное окно:
<?php
    Modal::begin([
        'header' => '<h3 class="text-center">Подробная статистика<h3>',
        'size' => 'modal-lg',
        'id' => 'match',
        'footer' => '<button type="button" class="btn btn-danger" data-dismiss="modal">Закрыть</button>'
    ]);
    Modal::end();
?>

И вот кликая на ту самую ссылку у меня происходит переход по ссылке, что указана 'play/match', хотя это отключено - e.preventDefault(); Здесь я ожидаю модальное окно с передачей данных по Ajax, но нет - меня просто перебрасывает на роут - 'play/match'. Уже всё перепробовал - на той же самой страничке, вне области где загружается первые данные c Ajax модальное окно работает... А вот в той области и именно где нужно ничего не работает
Ответить с цитированием