Кнопка PHP «Перейти на родительскую страницу» на URL-адресе в стиле каталога

#javascript #php #jquery #back

#javascript #php #jquery #Назад

Вопрос:

Я пытался найти решение по всему Интернету, и я не вижу никакого решения, которое применимо к моей проблеме.

У меня есть веб-сайт в стиле каталога: ссылка здесь

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

Например, если пользователь находится здесь «site.com/page/subpage «, и они нажимают на кнопку «Назад», она должна отправить их на «site.com/page «.

Я не нашел никакого решения для этого. Я готов использовать jQuery или PHP.

Я был бы очень признателен за помощь в этом вопросе.

Заранее спасибо,

Бруно

РЕДАКТИРОВАТЬ: моя цель — НЕ использовать «историю назад», потому что, если пользователь не приходит с родительской страницы или если он приходит с любого другого сайта, он отправит их обратно туда. Я не хочу этого, я хочу, чтобы это была кнопка «перейти на родительскую страницу».

РЕДАКТИРОВАТЬ 2: Теория: моя теория заключалась бы в том, чтобы получить весь URL-адрес с:

 $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
  

и обрежьте его, удалив последнюю часть. Например, удаление «/ subpage» из «site.com/page/subpage «

Комментарии:

1. Ответ @RasulIslam является лучшим для этого случая, поскольку он использует встроенные функции PHP. Кроме того, такая функция называется «хлебные крошки». Поиск по этой фразе должен привести к гораздо более интересным результатам. 🙂

Ответ №1:

Попробуйте (javascript):

 var url = window.location.href.split('/');
url.splice(url.length-1,1);
var pUrl = url.join('/');
window.location.href = pUrl;
  

Комментарии:

1. Ваше решение работает ИМЕННО так, как я предполагал. Это очень маловероятно, но что, если URL заканчивается на «/». Я провел тест, и он перешел из «site.com/page/subpage /» кому «site.com/page/subpage «. Вы случайно не знаете какой-нибудь способ это исправить? В этом нет необходимости, но решение будет на 99% идеальным до 100%.

2. Ах, я понимаю. Возможно, после разделения вы можете добавить проверку if, например if (url[url.length-1] == «») { url.splice(url.length-2,1); } else { url.splice(url.length-1,1); } . Я не проверял это, может бытьвы можете попробовать и посмотреть.

Ответ №2:

Вы можете получить путь к родительским каталогам, используя dirname() метод php.

 $parentPath = dirname( $currentPath, 1)
  

Здесь 1 — это уровень, на который вы хотите перейти. Например

 $currentPath = "/page/subpage/anotherpage"
  

вернет /page/subpage

Комментарии:

1. Это лучший ответ, поскольку он использует встроенные функции, созданные именно для этой задачи!

Ответ №3:

Вы могли бы использовать history объект :

 $('.clickme').click(function() {
    history.back();
});
  

Надеюсь, это поможет.

Комментарии:

1. Моя цель — НЕ использовать это, потому что, если человек приходит с Google или любого другого веб-сайта, он перенаправит их обратно туда.