Мне почему то казалось что в this.$ как объект jQuery должна быть ссылка на DOM.
Разве проблема не в том что используется this.$.html(«далее идет строка с HTML кодом») вместо this.$.replaceWith? Руки чешутся проверить, но время то позднее :)
С одной стороны да, с другой стороны — какой именно контроллер должен заниматься разграничением прав? :)
Если разграничения по страницам (маршрутам) достаточно, то на мой взгляд оптимальным будет разместить всю систему в одном контроллере, ослабив тем самым связи с другими контроллерами. В таком варианте это имеет непосредственное отношение к роутингу.
TROODON вариант хранения маршрутов в БД не рассматривался? А что если, например, необходимо будет разграничить права доступа пользователей к ресурсу в плоскости маршрутов (страниц с точки зрения пользователя)? Мне кажется, такие связи будет проще реализовать если хранить все в БД, или я ошибаюсь?
Я отвечал в контексте текущей задачи. Здесь проблема скорее всего в том что задача неверно сформулирована. ИМХО самый верный вариант предложили в первом же комментарии.
Варианты с манипуляциями DOM я обдумывал просто ради спортивного интереса :)
я как раз это и предложил, просто реализовать пока не получается, со временем напряженка.
Но на самом деле такие манипуляции будут тяжелее чем сохранить весь список при помощи jQuery.data() и искать уже там.
Второе что приходит в голову — Wott прав, и стоило бы сделать загрузку данных аяксом с поиском на сервере. Но ситуации бывают всякие, и если так прижало что надо реализовать все на клиенте, то так же стоит обратить внимание на jQuery.data(). Сохраняем все в массиве, очищаем select полностью, обходим сохранённый массив при поиске и наполняем select. Это пожалуй самый правильный вариант. Вечером попробую накидать и этот вариант.
Навскидку приходит ещё один вариант:
1. Все option пометить классом 'searchable'.
2. Поиск производить по всем option с классом 'searchable'
3. Все option не соответствующие условию отбора помещать в другой select на котором установлено display:none. Все option соответствующие условию отбора помещать в исходный select.
Вроде бы должно работать. Завтра попробую реализовать в коде… сегодня уже поздновато.
Думаю устраивать холивар по поводу того какой способ быстрее — бессмысленно, но все же отмечу: у меня файл размером более 30 000 строк генерируется без каких либо задержек (так же быстро как и файл). Думаю здесь довольно большое значение будет иметь скорость работы БД.
Предупреждение действительно появляется. Оно гласит что расширение не соотвествует контенту, и необходимо убедиться что файл не поврежден и получен из достоверного источника. Если файл назвать *.xml то предупреждения не будет, но может случиться так что файл будет открыт не в Excel.
Файл приготовил, только пока не нашел как его прицепить к топику…
Этот вопрос тоже достаточно интересен, но сейчас меня больше интересует непосредственно копирование/вставка диапазона ячеек из листа Excel на страницу браузера (то есть некоторый аналог Google docs). Правда это имеет мало отношения к PHP.
К сожалению прямо сейчас примера под рукой нет. Завтра сделаю обязательно.
PHPExcel не пробовал, т.к. с лихвой хватает описанного выше метода. Сейчас обдумывается обратное направление движения информации — из Excel в браузер.
Разве проблема не в том что используется this.$.html(«далее идет строка с HTML кодом») вместо this.$.replaceWith? Руки чешутся проверить, но время то позднее :)
Если разграничения по страницам (маршрутам) достаточно, то на мой взгляд оптимальным будет разместить всю систему в одном контроллере, ослабив тем самым связи с другими контроллерами. В таком варианте это имеет непосредственное отношение к роутингу.
Поменял только скрипт поиска, и добавил один select на страницу:
код скрипта:
Рабочий пример можно посмотреть здесь.
Я отвечал в контексте текущей задачи. Здесь проблема скорее всего в том что задача неверно сформулирована. ИМХО самый верный вариант предложили в первом же комментарии.
Варианты с манипуляциями DOM я обдумывал просто ради спортивного интереса :)
Но на самом деле такие манипуляции будут тяжелее чем сохранить весь список при помощи jQuery.data() и искать уже там.
1. Все option пометить классом 'searchable'.
2. Поиск производить по всем option с классом 'searchable'
3. Все option не соответствующие условию отбора помещать в другой select на котором установлено display:none. Все option соответствующие условию отбора помещать в исходный select.
Вроде бы должно работать. Завтра попробую реализовать в коде… сегодня уже поздновато.
Таким методом я генерировал файлы размером более 2 мегабайт и более 30 000 строк.
Файл приготовил, только пока не нашел как его прицепить к топику…
PHPExcel не пробовал, т.к. с лихвой хватает описанного выше метода. Сейчас обдумывается обратное направление движения информации — из Excel в браузер.