Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2018, 12:42
Интересующийся
Отправить личное сообщение для monah1983 Посмотреть профиль Найти все сообщения от monah1983
 
Регистрация: 05.02.2015
Сообщений: 20

Получить параметры
Добрый день!
Помоги сделать, 2-ой день не могу сделать.
Есть ячейки таблицы с уникальными классами (которые начинаются reload_, а после уникальное значение), при нажатии на который, название класса, без reload_, должно передаться в параметр sort
вот ячейки
<th scope="col" class="reload_id" style="cursor:pointer" onClick="document.location='index.php?sort=id&por=<?php echo $table_sort ?>'">id</th>
<th scope="col" class="reload_name" style="cursor:pointer" onClick="document.location='index.php?sort=name&por=<?php echo $table_sort ?>'">Имя</th>
<th scope="col" class="reload_price" style="cursor:pointer" onClick="document.location='index.php?sort=price&por=<?php echo $table_sort ?>'">Цена</th>


$(document).ready(function(){

            $('.reload_rating').click(function(){
            $.ajax({
                url: "index.php?sort=rating&por=<?php echo $table_sort ?>",
                cache: false,
                success: function(html){
                    $("#reloader").html(html);

                }
            });
        });
    });

и как потом передать в урл эти параметры
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2018, 12:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Получить так - this.className.substr(7), а вставлять куда?
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2018, 12:50
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

<th scope="col" class="filter-control reload_id" style="cursor:pointer">id</th>
<th scope="col" class="filter-control reload_name" style="cursor:pointer">Имя</th>
<th scope="col" class="filter-control reload_price" style="cursor:pointer">Цена</th>

<script>
    $(document).ready(function() {
        var get_por = '<?php echo $table_sort ?>';

        $('.filter-control').click(function() {
            location.href = 'index.php?sort =' + [].filter.call(this.classList, function(item) {
                return item.indexOf('reload_') == 0;
            }).shift().replace('reload_', '') + '&por=' + get_por;
        });

        $('.reload_rating').click(function() {
            $.ajax({
                url: "index.php?sort=rating&por=" + get_por,
                cache: false,
                success: function(html) {
                    $("#reloader").html(html);

                }
            });
        });
    });
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 20.06.2018, 13:38
Интересующийся
Отправить личное сообщение для monah1983 Посмотреть профиль Найти все сообщения от monah1983
 
Регистрация: 05.02.2015
Сообщений: 20

огромное спасибо за помощь и прошу прощения, но я немного не так написал
вот все ячейки
<th scope="col" class="reload_id filter-control" style="cursor:pointer">id</th>
            <th scope="col" class="reload_name filter-control" style="cursor:pointer">Имя</th>
            <th scope="col" class="reload_price filter-control" style="cursor:pointer"">Цена</th>
            <th scope="col" class="reload_rating filter-control" style="cursor:pointer">Рейтинг</th>


$('.reload<сюда тоже подставить класс>').click(function() {
            $.ajax({
                url: "index.php?sort=<и сюда тоже подставить класс>&por=" + get_por,
                cache: false,
                success: function(html) {
                    $("#reloader").html(html);

                }
            });
        });

если не тяжело, спасибо, потом буду разбирать)))))
Ответить с цитированием
  #5 (permalink)  
Старый 20.06.2018, 13:45
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

monah1983,
<th scope="col" class="reload_id filter-control">id</th>
<th scope="col" class="reload_name filter-control">Имя</th>
<th scope="col" class="reload_price filter-control">Цена</th>
<th scope="col " class="reload_rating filter-control">Рейтинг</th>


<style>.filter-control{cursor:pointer}</style>
<script>
    $(document).ready(function() {
        var get_por = '<?php echo $table_sort ?>';

        $('.filter-control').click(function() {
            var sort_by = [].filter.call(this.classList, function(item) {
                return item.indexOf('reload_') == 0;
            }).shift().replace('reload_', '');

            $.ajax({
                url: "index.php?sort=" + sort_by + " &por=" + get_por,
                cache: false,
                success: function(html) {
                    $(" #reloader ").html(html);

                }
            });

        });
    });
</script>
Ответить с цитированием
  #6 (permalink)  
Старый 20.06.2018, 15:00
Интересующийся
Отправить личное сообщение для monah1983 Посмотреть профиль Найти все сообщения от monah1983
 
Регистрация: 05.02.2015
Сообщений: 20

<style>.filter-control{cursor:pointer}</style>
<script>
    $(document).ready(function() {
        var get_por = '<?php echo $table_sort ?>';




        $('.filter-control').click(function() {

            var sort_by = [].filter.call(this.classList, function(item) {
                return item.indexOf('reload_') == 0;
            }).shift().replace('reload_', '');



            $.ajax({
                url: "index.php?sort=" + sort_by + " &por=" + get_por,
                cache: false,
                success: function(html) {
                    $(" #reloader ").html(html);
                 window.location.href = "index.php?sort=" + sort_by + "&por=" + get_por;
                }
            });

        });
    });
</script>

код отлично работает, обновляет, берёт параметры, передает урл, но почему то обновляет страницу, но он по сути должен обновить таблицу без перезагрузки и в ставить в урл. что не так?
Ответить с цитированием
  #7 (permalink)  
Старый 20.06.2018, 15:02
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

Сообщение от monah1983
но почему то обновляет страницу
У вас в строке 22 идет редирект, удалите строку и будет вам счастье
Ответить с цитированием
  #8 (permalink)  
Старый 20.06.2018, 15:06
Интересующийся
Отправить личное сообщение для monah1983 Посмотреть профиль Найти все сообщения от monah1983
 
Регистрация: 05.02.2015
Сообщений: 20

удалил, но тогда в урл не передаются параметры
Ответить с цитированием
  #9 (permalink)  
Старый 20.06.2018, 15:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,795

monah1983, для изменения url подойдет History API
var url = "index.php?sort=" + sort_by + "&por=" + get_por;
$.ajax({
    url: url,
    cache: false,
    success: function(html) {
        $(" #reloader ").html(html);
        !!window.history && history.replaceState({}, document.title, url);
    }
});

ps. в адресе перед амперсандом пробела быть не должно.

Последний раз редактировалось Nexus, 20.06.2018 в 15:16.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
jquery получить родителя и обратится к элементу внутри по class _Eldar_ Общие вопросы Javascript 6 05.04.2015 19:32
Получить параметры, формируемые с помощью JS alex_ram Работа 3 18.06.2013 11:46
Получить координаты курсора в текстовом поле в пикселях prike Events/DOM/Window 4 23.05.2013 04:35
Получить get параметры из javascript challenger Events/DOM/Window 4 08.10.2012 17:58