Сегодня, други мои, я не пишу ничего заумного, не учу жить и программировать. Сегодня хочу поплакаться к вам в жилетку.
Да, да!!
Ибо сегодня я обнаружил себя полнейшим двоечником и облажался по полной программе. Так что сегодня в программе нытьё, сопли и безжалостное самобичевание. Всё убрано подкат.
Вроде бы всё хорошо! Вроде CodeIgniter имеет довольно грамотную документацию, благодаря чему использование любой библиотеки не вызывает никаких трудностей. В том числе и библиотека Session, по которой подробно можно почитать (по-русски) или (по-английски).
Однако при использовании библиотеки у меня возникли проблемы. Началось всё с того, что я прикрутил xajax, который мог довольно часто обращаться к серверу.
Так вот, при слишком частом обращении к серверу у меня терялась сессия. Сначала я винил в этом AJAX, но потом я обнаружил, что сессия может теряться и без него, просто при очень частом обновлении страницы по F5.
Оказывается проблема довольно старая и проявляется не только у меня.
Пришло время мне понять наконец, что же такое AJAX и как с ним бороться. Я искал ссылки читал мануалы и факи, но чем больше я узнавал, тем больше я понимал что мало знаю (кто-то это уже говорил?). Сразу признаюсь, что кроме самого общего представления о технологии я в общем то и не имел.
А, наверное, всё из-за того, что я довольно плохо разбираюсь в Javascript. После некоторых поисков я откопал библиотеку xajax и способ использовать её в связке с CodeIgniter. Вообще xajax будто идеально подходит именно для php-программистов, плохо разбирающихся в Javascript.
Это реально просто!
Я попытаюсь показать пример приложения. Для демонстрации достаточно одного контроллера testxajax. Пример, как всегда, подсмотренный исправленный и творчески переработанный.
Мне понадобился выпадающий список. Причём список может быть непредсказуемо большой.
Штатный select из HTML не тянет, т.к. мне скорее всего будет нужна возможность ввода подстроки для последующего поиска. фильтрацией.
Что-то подобное можно видеть . Классная библиотека! Отличная работа, но что-то мне не понравилась лицензия. Я пишу сайт для себя, и соответственно не буду делать релизов с открытыми кодами, поэтому мне видимо не подходит бесплатная лицензия. Хотя возможно я просто что-то неправильно понял.
Если кто-то что-то сможет посоветовать буду рад.
А пока, пишем сами. После исканий и гуглений, а также компиляции и адаптации где-то чего-то подсмотренного к своей теме я сделал примерно следующей вариант: