Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.05.2018
Сообщений: 2
1

Фильтр для сайта

09.05.2018, 18:28. Показов 675. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Скажу сразу я не опытный программист PHP и если что-то не так, прошу не агрится. Есть код с сайта, в нем разметка селект от которого зависит еще 1 селект и вот надо что бы во втором селекте при выборе пункта и перезагрузки страницы сохранялся выбранный пункт. Сайт на WordPress. Подойдет любая помощь, спасибо)

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<div class="higway_wrap" style="padding: 0 0 10px;">
                                <select class="form-element" name="filter[direction][]">
                                    <option value="">Направление</option>
                                    <option data-parent="0" value="12">Север</option>
                                    <option data-parent="0" value="59">Северо-Восток</option>
                                    <option data-parent="0" value="13">Восток</option>
                                    <option data-parent="0" value="57">Юго-Восток</option>
                                    <option data-parent="0" value="17">Юг</option>
                                    <option data-parent="0" value="16">Юго-Запад</option>
                                    <option data-parent="0" value="15">Запад</option>
                                    <option data-parent="0" value="14">Северо-Запад</option>
                                </select>
                                <select class="form-element highway" name="filter[highway][]">
                                    <option value="">Шоссе</option>
                                    <?php foreach ($highways as $highway) { ?>
                                        <option data-parent="<?= $highway->parent ?>"
                                                value="<?= $highway->term_id ?>"><?= $highway->name ?></option>
                                        <?php
                                    } ?>
                                </select>&nbsp;<a href="" class="mc_del" onclick="return del_parent(jQuery(this));">Удалить</a>
                            </div>
                            <?php $highway_html = trim(preg_replace('/([\r\n][\t\s]*)/', '', ob_get_clean()));
                            $select_count = 1;
                            if (!empty($filter['highway'])) {
                                foreach ($filter['highway'] as $direction_id => $ar_highways) {
                                    $select_count += count($ar_highways);
                                }
                                $select_count--;
                            }
                            echo str_repeat($highway_html, $select_count) ?>
                        </div>
                        <script>
                            jQuery('.higway_wrap:first .mc_del').remove();
                            jQuery(function () {
                                highway_options(jQuery('.highway'));
                            });
                            jQuery('[name=filter\\[direction\\]\\[\\]]').not('.bind').addClass('bind').change(function () {
                                highway_options(jQuery(this).next());
                            });
                            jQuery('input.num').bind('input change keyup paste', function (e) {
                                var cursor_position = this.value.substr(0, this.selectionStart).replace(/[\D]/g, '').length;
                                this.value = this.value.replace(/[\D]/g, '');
                                this.selectionStart = this.selectionEnd = cursor_position;
                            });
                            <?php
                            if (!empty(count($filter['highway']))) {
                            $k = 0;
                            foreach ($filter['highway'] as $direction_id => $ar_highways) {
                            foreach ($ar_highways as $highway) { ?>
                            jQuery('[name=filter\\[direction\\]\\[\\]]').eq(<?= $k ?>).val(<?= $direction_id ?>);
                            setTimeout(function () {
                                highway_options(jQuery('[name^=filter\\[highway\\]]').eq(<?= $k ?>));
                                jQuery('[name^=filter\\[highway\\]]').eq(<?= $k ?>).val(<?= $highway ?>);
                            }, 500);
                            <?php
                            $k++;
                            }
                            }
                            }
                            ?>
                            function highway_options(obj) {
                                obj.find('option').hide();
                                var current_options = obj.attr('name', 'filter[highway][' + (obj.prev().val() || '') + '][]').find('option[data-parent="' + obj.prev().val() + '"]');
                                obj.val(current_options.show().first().val());
                            }
                            function add_highway() {
                                if (jQuery('.higway_wrap').length < jQuery('[name^=filter\\[highway\\]]:first').find('option').length)
                                    var html = '<?= $highway_html ?>';
                                jQuery('.higway_wrap:last').after(html);
                                jQuery('[name=filter\\[direction\\]\\[\\]]').not('.bind').addClass('bind').change(function () {
                                    highway_options(jQuery(this).next());
                                });
                                highway_options(jQuery('.highway:last'));
                            }
                            function del_parent(obj) {
                                obj.closest('.higway_wrap').remove();
                                return false;
                            }
                        </script>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.05.2018, 18:28
Ответы с готовыми решениями:

Как сделать фильтр для интернет-магазина
Подскажите, как сверстать и осуществить фильтр, такой как на сайте chasi5.ru Я говорю про...

Фильтр поиска для сайта
Подскажите как организовать такой фильтр.. Может натолкнете на путь истинный?

Фильтр для поиска
Доброго времени суток Появилось желание сделать фильтр для поиска с выбором подходящих вариантов...

Фильтр для запроса
Есть около 30 значений В зависимости от отмеченных значений требуется построить запрос Что-то...

1
Эксперт PHP
3851 / 3196 / 1343
Регистрация: 01.08.2012
Сообщений: 10,820
09.05.2018, 18:31 2
Смотрите в сторону AJAX
0
09.05.2018, 18:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.05.2018, 18:31
Помогаю со студенческими работами здесь

Сложная выборка из базы или фильтр для товара
Что-то запутался с тем, как мне организовать поиск записей по сложному фильтру. Допустим есть...

Фильтр объектов для сайта
Добрый день, уважаемые разработчики. У меня на сайте идет наполнение через базу данных MySQL и...

фильтр страниц сайта
Добрый всем форумчанам! Прошу прощения - не нашел подходящей темы, поэтому пишу здесь. Вопрос не...

фильтр молодого сайта? песок?
Поюзав 1,5-2 часа поиск решил создать топик /' border='0' style='vertical-align:middle' alt='' /&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru