Мои навыки регулярных выражений плохие.Чтобы мои js / css отображали правильное меню, я добавляю в "li" класс к своему li, чтобы js знал, какой элемент является текущим (чтобы он мог отображать остальную часть раскрывающегося списка).
Моя проблема связана с правильной строкой URI в codeigniter:
<li <? if((strstr($this->uri->uri_string(),"rfid_finder/finder")) || (strstr($this->uri->uri_string(),"finder"))) {?>class="selected"<?}?> rel="home"> <?= anchor('finder','HOME')?></li>
Я изначально использовал этот метод, но мои маршруты теперь немного сложнее, чтобы разрешить поиск и нумерацию страниц.
Iтребуется регулярное выражение, которое будет соответствовать всем следующим маршрутам:
$route['finder/(:any)/(:any)/(:num)'] = "rfid_finder/finder/$1/$2/$3";
$route['finder/(:any)/(:any)'] = "rfid_finder/finder/$1/$2";
$route['finder/(:any)'] = "rfid_finder/finder/$1";
$route['finder'] = 'rfid_finder/finder';
, но когда пользователь посещает:
rfid_finder/search_form
первое меню не соответствует выбранному классу.
Обновление
Я хочу, чтобы первый фрагмент кода соответствовал маршрутам, а не маршруту rfid_finder/search
- у меня есть вторая строка кода, которая соответствует маршруту rfid_finder / search_form.моя проблема заключается в попытке записать маршрут, используя (strstr($this->uri->uri_string(),"finder")
, он соответствует всем моим маршрутам, даже rfid_finder/search_form