Передача переменной без использования сегментов $ _GET или URI - CodeIgniter - PullRequest
0 голосов
/ 21 октября 2011

У меня есть блог, где я хочу, чтобы пользователь щелкнул ссылку, чтобы иметь возможность инвертировать цветовую схему (от темного на светлом к ​​светлому на темном). Эта ссылка будет доступна на каждой странице блога.

Если бы я не использовал CodeIgniter, я бы создал ссылку с параметром (например, «index.php? Inverted = true») и в моем контроллере обнаружил, был ли установлен $ _GET ['inverted'], установил $ Переменная _SESSION. Ссылка будет изменена, и дополнительный CSS-файл будет добавлен, когда установлена ​​переменная $ _SESSION. Новый href ссылки будет что-то вроде «index.php? Inverted = false», а переменная $ _SESSION будет не установлена. Он будет работать по всему сайту и независимо от остальной части URI.

Я пытался использовать функции uri_segement в CodeIgniter, но, поскольку это необходимо для всего сайта, мои URI меняются (иногда просто «index.php / controller / function», иногда «index.php / controller /»). функция / para1 / para2 / para3" ). Поэтому я не могу просто сделать свою ссылку: [href = "$ _ SESSION ['REQUEST_URI']." / Inverted "], а затем определить, существует ли этот сегмент URI, потому что я не знаю, какое число будет сегментом" инвертированный " Кроме того, если пользователь находится на одной странице и дважды щелкает ссылку, URI снова и снова добавляет «/ инвертированный».

Я создал фиктивную форму, чтобы вместо нее использовать массив $ _POST, но я знаю, что это не очень хорошая практика.

Есть предложения?

1 Ответ

0 голосов
/ 21 октября 2011

Заставьте ссылку отправить форму через POST, как вы описали, затем установите переменную SESSION, после чего выполните перенаправление на ссылающуюся страницу (HTTP_REFERER).Вы можете сделать что-то похожее, чтобы отключить эту опцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...