Я работаю с Symfony 1.2. У меня есть представление со списком объектов. Я могу их заказать, отфильтровать по категориям или перейти на следующую страницу (имеется разбивка на страницы). Все сделано с AJAX, поэтому мне не нужно снова загружать всю страницу.
То, что я хочу достичь, – это, например, http: // urltopage # page = 1 & order = title & cats = 1,2 ; поэтому новая страница сохраняется в истории браузера, и он может вставить ее в другую сеть.
Я не нашел способ получить #part. Я знаю, что это только для браузера, но я не могу поверить, что не могу пройти через PHP. Я уверен, что есть простое решение, которое мне не хватает …
большое спасибо!
Вы не можете получить его через PHP, потому что он никогда не передается на сервер.
Однако вы можете получить его с помощью JavaScript через window.location.hash
, а затем передать его на сервер через AJAX.
Якорь, как вы сказали, является информацией, которая используется браузером, и не отправляется на сервер при выполнении стандартного запроса HTT GET.
Это означает, что ваш PHP-скрипт не сможет получить эту информацию …
… если вы не попробуете использовать некоторую магию на основе Javascript, например, используя запрос Ajax, отправив некоторый дополнительный параметр, который будет содержать значение якоря или что-то в этом роде … но это не было бы вполне стандартным способом что-то делать, и я бы не рекомендовал это делать …
window.location.hash – единственный способ («hash» / anchor только на стороне клиента, никогда не видимый серверами), но ничто не запрещает вам манипулировать querystring (преобразование в параметры GET) или создание FORM с использованием JS и преобразование к параметрам POST.
Это основа для создания обработчика / менеджера обработчика javascript AJAX. Но в конце концов вы должны создать GET / POST «обычный» url для отправки вашего запроса.
Вы могли бы также сохранить в cookie хэш, но опять же, я бы не использовал его как способ обработки маршрутизации или передачи данных.