не плохое решение, но будет не удобно когда в списке много категорий!
я уже сам решил, буду выводить древовидную структуру в div, оформлю div как селект, сделаю многоуровнево меню выбора категории, и ту категорию которую выберу буду транслировать в input а от туда уже на сервер!)
я у себя просто добавлял по два пробела для каждого уровня в (options) и select выглядел нормально.
Ещё можно сделать несколько селектов: выбирается один -- подгружается ajax'ом второй, выбирается второй -- подгружается третий и т.д.
Какой из вариантов выбрать зависит от ситуации.