Задать вопрос
@Miri_Skava

Почему не работает ajax?

Здравствуйте!
Делала по примеру (правда он не для фрейморка), все бы ничего, но ajax отправляет get запрос, а экшен почему-то не хочет увидеть этот запрос. Подскажите, пожалуйста, в чем проблема?

Код экшена:
$count_per_page=2;
        //подсчет кол-ва страниц
        $count=Vari::find()->count('*');

        $number_pages = (int)($count/$count_per_page);

        if(($count%$count_per_page) != 0) {
            $number_pages++;
        }
        if ($count < $count_per_page)
            $number_pages = false;
        //передача номера страницы с помощью get запроса
        if(!Yii::$app->request->isAjax){
            if(Yii::$app->request->get('page')) {
                $page = (int)(Yii::$app->request->get('page'));
                if (!$page) {
                    $page = 1;
                }
            }
            else {
                $page = 1;
            }
            if (Yii::$app->request->get('move')==1) {
                $move = 1;
            }
            else
                $move=0;

            $lon = Yii::$app->request->get('page');
        }
        //разбиение списка на страницы
        $start = ($page - 1)*$count_per_page;
        $varis=Vari::find()->orderBy('id')->limit($count_per_page)->offset($start)->all();
        if (!$varis){
            exit("<p>В базе данных не обнаружено таблицы проверте настройки</p>");
        }
        if($varis == 0) {
            exit('Статтей нет');
        }

        return $this->render('varuser', [
            'vari' => $varis,
            'count'=>$count,
            'number_pages'=>$number_pages,
            'move'=>$lon,
            'page'=>$page,
            ]);
    }


Код представления:
<?php

use yii\helpers\Html;
use yii\helpers\Url;

?>

<script>
    $(document).ready(function () {

        console.log(<?=$move?>);

        $(".load").hide();

        $('#slider').slider({
            step:1,
            min:1,
            max:<?=$number_pages;?>,
            stop: function(event, ui) {
                $('.load').fadeIn(300,function() {
                    $.ajax({
                        url:"index.php?r=site/varieties",
                        type:"GET",
                        data: "page="+ui.value+"&move=1",
                        success: function(html) {
                            $('.load').fadeOut(200,function() {
                                ///
                                $('.main_text').html(html).hide().fadeIn(200);
                                $('.ui-slider-handle span').text(ui.value);
                            });
                        }

                    });

                });
            }

        }).slider("option","value",<?=$page;?>);
        $(".ui-slider-handle").html("<span>"+$("#slider").slider("value")+"</span>");
    });
</script>

<div class="container">
    <h2 class="generals">Varieties</h2>
   <div><?php
    if(!Yii::$app->user->isGuest) {
    ?><?=Html::a('Добавить',['createvar'],['class'=>'btn butsweet']);}?></div>
    <?php
    if($number_pages) {
        echo '<div style="width:330px;height:40px;margin:3px auto;">
              <a id="prev"></a>
              <div style="width:150px;float:left;margin-top:12px">
              <div id="slider"></div>
              </div>
              <a id="next"></a>
              </div>';
    }
        ?><div class="load"></div>

<?php if($_GET['move']==1){?>
        <table>

            <?php

            foreach ($vari as $v) {
                echo '<tr><td>' . Html::img('img/var/' . $v->image, ['height' => 190]) . '</td><td>' . $v->description . '</td></tr>';
            }
            ?>

        </table>
    <?php exit();}?>

    <table>

        <?php

        foreach ($vari as $v) {
            echo '<tr><td>' . Html::img('img/var/' . $v->image, ['height' => 190]) . '</td><td>' . $v->description . '</td></tr>';
        }
        ?>

    </table>
</div>
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@morricone85
в Yii есть панель для отладки, там, можно, посмотреть где ошибка.

Постраничное разделение данных:

Ответы:
Ответ написан
@LemonFox
stateless mind
Во-первых, раз уж пишете на yii, то для пагинации используйте - https://www.yiiframework.com/doc/api/2.0/yii-data-... или https://www.yiiframework.com/doc/api/2.0/yii-data-...

Во-вторых, не ображайтесь к $_GET напрямую - используйте Yii::$app->request

В-третьих, не понятно что за ошибка. Смотрите в консоль браузера, ну и debug-панель в yii. Может у вас просто неверно задан урл запроса? Используйте Url::to() https://www.yiiframework.com/doc/api/2.0/yii-helpe...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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