We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 18141
    • 9 Posts
    Есть вот такой сниппет, который делает сортировку по цене и названию документов, а также должен выводить нужное количество документов на странице. Он отлично работает в мозиле, но не работает в 8 эксплорере, может подскажете, где ошибка?

    <?php
    $filterForm = ’<form id="filterForm" action="[~[*id*]~]" method="get">’;
    $filterForm .= ’<div id="sortLinks">’;
    $filterForm .= ’<input type="hidden" name="sdir" value="" /><input type="hidden" name="sby" value="" />’;
    $filterForm .= ’<b>cортировать по:</b><span class="sortDirLinks" rel="pagetitle"><span class="sortBy" rel="’;
    if($_GET["sdir"] == "price" || ($_GET["sdir"] == "pagetitle" && $_GET["sby"] == "DESC")) $filterForm .= "ASC";
    elseif(!isset($_GET["sdir"]) || $_GET["sdir"] == "pagetitle") $filterForm .= "DESC";
    $filterForm .= ’"></span>названию</span><span class="sortDirLinks" rel="price"><span class="sortBy" rel="’;
    if(!isset($_GET["sdir"]) || $_GET["sdir"] == "pagetitle" || ($_GET["sdir"] == "price" && $_GET["sby"] == "DESC")) $filterForm .= "ASC";
    elseif($_GET["sdir"] == "price") $filterForm .= "DESC";
    $filterForm .= ’"></span>цене</span>’;

    /* Количество страниц */
    $filterForm .= ’<span class="sortPagination">по <select name="spages">’;
    $filterForm .= ’<option value="10"’;
    if(!isset($_GET["spages"]) || (isset($_GET["spages"]) && $_GET["spages"] == 10)) $filterForm .= ’ selected’;
    $filterForm .= ’>10</option>’;
    $filterForm .= ’<option value="20"’;
    if(isset($_GET["spages"]) && $_GET["spages"] == 20) $filterForm .= ’ selected’;
    $filterForm .= ’>20</option>’;
    $filterForm .= ’<option value="50"’;
    if(isset($_GET["spages"]) && $_GET["spages"] == 50) $filterForm .= ’ selected’;
    $filterForm .= ’>50</option>’;
    $filterForm .= ’<option value="100"’;
    if(isset($_GET["spages"]) && $_GET["spages"] == 100) $filterForm .= ’ selected’;
    $filterForm .= ’>100</option>’;
    $filterForm .= ’</select> на странице</span>’;
    /* --/Количество страниц */
    $filterForm .= ’</div></form>’;

    /* Параметры для Ditto */
    $params[’id’] = ’catalog’;
    $params[’hideFolders’] = 1;
    $params[’depth’] = 4;
    $params[’tpl’] = ’cattpl’;
    $params[’sortDir’] = isset($_GET["sby"]) && !empty($_GET["sby"]) ? $_GET["sby"] : ’ASC’;
    $params[’sortBy’] = isset($_GET["sdir"]) && !empty($_GET["sdir"]) ? $_GET["sdir"] : ’pagetitle’;
    $params[’paginate’] = 1;
    $params[’paginateAlwaysShowLinks’] = 1;
    $params[’summarize’] = isset($_GET["spages"]) && !empty($_GET["spages"]) ? $_GET["spages"] : 10;
    /* --/Параметры для Ditto */

    return $filterForm.$modx->runSnippet(’Ditto’, $params);
    ?>
      • 785
      • 2,113 Posts
      А сам по себе он вообще не должен работать, судя по всему, вся логика в программе на JavaScript реализована.
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации
        • 18141
        • 9 Posts
        Сорри, вот скрипт smiley

        $(document).ready(function(){
        /* Фильтрация */
        $("span.sortDirLinks").each(function(){
        $(this).click(function(){
        dirvalue = $(this).attr("rel");
        byvalue =$(this).find("span.sortBy").attr("rel");
        $("#filterForm input[name=\"sdir\"]").val(dirvalue);
        $("#filterForm input[name=\"sby\"]").val(byvalue);
        $("#filterForm").submit();
        });
        });
        $("select[name=\"spages\"] option").each(function(){
        $(this).click(function(){
        $("#filterForm").submit();
        });
        });
        $("#filterForm input:reset").click(function(){
        $("form[name=\"filterFormReset\"]").submit();
        });
        /* --/Фильтрация */
        });
          • 18141
          • 9 Posts
          Почти уверен, что ошибка в том, что в строке с описанием фомы(мой первый пост php) там где <select name="spages"> заданы values но не указано что делать по ’onchange’ поэтому и не срабатывает, если броузер по умолчанию обрабатывает форму на стороне клиента. Но как правильно поправить не знаю((

          может кто подскажет?
            • 18141
            • 9 Posts
            добавил onchange="this.form.submit()"