Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50

Как присвоить уникальный ID каждой ссылке в меню

23.07.2016, 19:30. Показов 6385. Ответов 12

Студворк — интернет-сервис помощи студентам
Всем привет!

Есть блок меню
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
<ul class="megamenu mynav">
    
    <?php foreach ($categories as $category) { ?>
    <?php if ($category['children']) { ?>
    <li class="with-sub-menu hover"><p class="close-menu"></p>
        <a href="<?php echo $category['href'];?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
    <?php } else { ?>
    <li>
        <a href="<?php echo $category['href']; ?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
    <?php } ?>
        <?php if ($category['children']) { ?>
        <?php 
            $width = '100%';
            $row_fluid = 3;
            if($category['column'] == 1) { $width = '220px'; $row_fluid = 12; }
            if($category['column'] == 2) { $width = '500px'; $row_fluid = 6; }
            if($category['column'] == 3) { $width = '700px'; $row_fluid = 4; }
        ?>
        <div class="sub-menu" style="width: <?php echo $width; ?>">
            <div class="content">
                <div class="row hover-menu">
                    <?php for ($i = 0; $i < count($category['children']);) { ?>
                    <div class="col-sm-<?php echo $row_fluid; ?>">
                        <div class="menu">
                            <ul>
                              <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
                              <?php for (; $i < $j; $i++) { ?>
                              <?php if (isset($category['children'][$i])) { ?>
                              <li><a href="<?php echo $category['children'][$i]['href']; ?>" onclick="window.location = '<?php echo $category['children'][$i]['href']; ?>';"><?php echo $category['children'][$i]['name']; ?></a></li>
                              <?php } ?>
                              <?php } ?>
                            </ul>
                        </div>
                    </div>
                    <?php } ?>
                </div>
            </div>
        </div>
        <?php } ?>
    </li>
    <?php } ?>
</ul>
Подскажите, как присвоить каждому li свой ID. Содержимое ID не важно, главное чтобы он был уникальный и можно было задавать стили каждому отдельно.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.07.2016, 19:30
Ответы с готовыми решениями:

Как присвоить сайту уникальный id для скрипта?
Доброго времени суток. Возник такой вопрос. У меня есть JavaScript: &lt;SCRIPT LANGUAGE=&quot;Javascript&quot;...

Присвоить уникальный id
Подскажите пожалуйста, как при нажатии на кнопку присвоить уникальный id в html тег &lt;p id=&quot;&quot;&gt;Текст&lt;/p&gt;

Присвоить новому пользователю уникальный номер
Здравствуйте! Нужно чтобы при регистрации данные пользователя записывались в базу и ему присваивался номер, а также этот номер записывался...

12
276 / 201 / 143
Регистрация: 22.01.2016
Сообщений: 637
23.07.2016, 19:46
Как-то так?
PHP
1
2
$id = 'li-' . mt_rand(1, 99) . mt_rand(100, 999);
echo $id;
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
23.07.2016, 19:50  [ТС]
Ок, я не спец в php, делаю методом научного тыка) тыкни носом, куда это вставлять?)

В частности меня интересует вот этот li

PHP/HTML
1
2
3
4
5
6
7
<li class="with-sub-menu hover"><p class="close-menu"></p>
        <a href="<?php echo $category['href'];?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
    <?php } else { ?>
   <li><!--вот этот-->
        <a href="<?php echo $category['href']; ?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
    <?php } ?>
        <?php if ($category['children']) { ?>
......... ..... ....
..... .... ...
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 20:00
В данном случае id не обязателен.
Например можно
JavaScript
1
2
3
4
5
$("li:eq(0)").css({//стиль для первого li
        'color' : 'blue',
        'fontStyle' : 'italic',
        'font-weight' : 900
    });
И таким макаром можно "на лету" задавать стили любым элементам, при этом не имея ни id, ни name, ни class.
Только не забудьте подключить библиотеку jQuery.
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
23.07.2016, 20:04  [ТС]
В данном случае id не обязателен
Например можно
Дело в том, что мне необходимо каждому элементу в списке присвоить свой :before . С помощью вашего способа это возможно сделать?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 20:17
Обратится на прямую к псевдоклассу — нельзя. Зато можно добавлять какой-то уникальный класс и к нему уже задать :before;
Вот пример на fiddle:
https://jsfiddle.net/ph0cstdz/

PS
В примере событие по клику, но, я думаю, суть будет ясна.
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
23.07.2016, 20:23  [ТС]
Честно сказать, суть не очень ясна)) точнее пример мне понятен, но как его проецировать под мои нужды не понятно..
Мне нужно каждому li присвоить свой псевдоэлемент before. Я подумал что проще всего присвоить каждому свой ID и от этого плясать... Но видимо я ошибался.
А с помощью JS я совсем не пойму как это сделать..)
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 20:28
Ну, тогда прогоняйте li по циклу
Думаю, так Вы решите проблему
PHP
1
2
3
4
5
6
$li = '';//кол-во li
echo '<ul>';
for($i=0; $i<$li; $i++){
    echo '<li id="'.$i.'">';
}
echo '</ul>';
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
23.07.2016, 20:32  [ТС]
Последний вопрос))

Т.к. я не волоку в php и делаю с помощью вас и гугла, подскажите пожалуйста, как мне этот цикл применить в моем меню?)
В частности меня интересует вот этот li

PHP/HTML
1
2
3
4
5
6
7
<li class="with-sub-menu hover"><p class="close-menu"></p>
<a href="<?php echo $category['href'];?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
<?php } else { ?>
<li>
<a href="<?php echo $category['href']; ?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
<?php } ?>
<?php if ($category['children']) { ?>
......... ..... ....
..... .... ...
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
23.07.2016, 20:38
Дык уже есть цикл: foreach().
Честно говоря, лениво все это переписывать. HTML c PHP переплетен. Терпеть не могу такой стиль...
Наведу на мысль (хотя я уж и так много раз это сделал )
Надеюсь, Вы знаете, что такое счетчик цикла. Вот его и используйте.
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
23.07.2016, 20:42  [ТС]
К сожалению я не знаю что такое счётчик цикла. Понимаю что вся штука в foreach(), но с чем его едят не знаю. Я не прошу все переписывать, скажите просто куда воткнуть, а дальше буду тыкать сам) может что и получится
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
23.07.2016, 20:53
PHP
1
2
3
4
5
6
7
8
9
10
11
12
li class="with-sub-menu hover"><p class="close-menu"></p>
<a href="<?php echo $category['href'];?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
<?php } else { 
echo "<ul>";
for($i=0;$i<5;$i++) {// где 5 это кол-во li
echo '<li id="'.$i.'">';
}
echo "</ul>";
?>
<a href="<?php echo $category['href']; ?>"><span><strong><?php echo $category['name']; ?></strong></span></a>
<?php } ?>
<?php if ($category['children']) { ?>
0
1 / 1 / 1
Регистрация: 12.06.2015
Сообщений: 50
24.07.2016, 19:05  [ТС]
Такой код добавляет новый список ul и в нем 5 li, а мне надо чтобы нумеровался уже существующий список в котором 6 пунктов меню. Просто чтобы каждый из этих пунктов имел свой id, так можно?

P.S. с добавлением нового ul разобрался, убрал часть кода, тогда выводится 4 пустых li и 1 пункт меню и так повторяется столько раз, сколько у меня пунктов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.07.2016, 19:05
Помогаю со студенческими работами здесь

Присвоить полю уникальный идентификатор при добавлении
Как, у меня аж два вопроса, делаю &amp;НаКлиенте Процедура ОперацииПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) Если...

Как зафиксировать цвет фона в активной ссылке меню
Здравствуйте! Есть меню, хотелось реализовать, чтобы при переходе на определённую категорию сайта в меню фиксировался цвет категории?

Как оставить меню открытым после клика по ссылке
Вопрос в следующем. Нужно сделать меню что б при нажатие на первую ссылку выпадающее меню оставалось открытым и не закрывалось, если...

Не закрывать дерево меню при переходе на страницу по ссылке из меню
здравствуйте знаю, что тема эта постоянно поднимается весь форум уже прошерстил и код здесь же нашёл...

Как присвоить каждой переменной в листе разное значение в цикле
У меня есть List типа Integer и там 4 элемента и я хочу пройтись по ним циклом и присвоить каждому элементу другое значение. Но чтобы...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru