0

У меня есть иерархия модели, которая выглядит примерно так:JQuery автозаполнения UI

Office 
    | 
    +-- Person 

То есть, каждый Office имеет несколько Person.

Я хочу разрешить пользователю выбирать Person с использованием поля ввода текста автозаполнения (используя jQuery UI Autocomplete). В этом поле ввода текста я разрешаю пользователю вводить текст, сопоставляемый с серверной стороной от имени, имени и имени пользователя Person, чтобы найти совпадения, предлагаемые пользователю во время ввода текста.

Недавно я столкнулся с проблемой, когда иногда пользователи знают только ограниченную информацию, например, имя Office и имя Person. Они не могут просто ввести «Джон» в поле автозаполнения, так как оно будет соответствовать сотням «Джона», и им придется прокручивать все эти данные, ища тот, который находится справа Office.

Мой вопрос, , что это лучший способ, чтобы позволить пользователям осуществлять поиск в течение Person с использованием критериев, как из Office и Person?

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

ответ

2

Заканчивать http://jquery.bassistance.de/autocomplete/demo/ затем нажмите

«Нажмите здесь для автозаполнения внутри окна ThickBox.»

Для демонстрации на своем плагине. Это реализует сложную автозаполнение, которую вы могли бы использовать, чтобы использовать Person в качестве основной записи, а офис - как меньшую информацию внизу. Может потребоваться некоторое изменение, чтобы он соответствовал тому, как вы хотите, чтобы пространство запустило новое выражение.

Пример:

В настоящее время john west не соответствует

John Smith 
Office: West Park 

но разграничение пространства для нового выражения будет совпадать с именем и офис одновременно.

Вы можете, однако, в настоящее время соответствует этой записи, введя либоJohnилиwest

+0

Я предполагаю, что проблема с этим метод выясняет, как связать имя офиса с данным пользователем без денормализации моей схемы базы данных, но это хорошее предложение, тем не менее. Я просто могу использовать этот. – FtDRbwLXw6

+0

Ну, у человека есть идентификатор офиса? В зависимости от вашей платформы, что-то в пределах цикла -> Пользователь, FindOffice (User.office_id) ->/loop –

+0

Да, но это автозаполнение, поэтому производительность - большая проблема. Проникновение через каждого пользователя и поиск офиса для него было бы слишком медленным . Скорее всего, мне придется присоединиться к таблицам и создать модель из результатов, а вместо этого искать их. – FtDRbwLXw6

1

Сначала я предоставил им необязательный выпадающий список, чтобы выбрать «Офис», а затем заполнить авто, заполненную каждым человеком из офиса. Затем вы можете включить функциональность, которая позволит им сначала выбрать Person, а также заполнить Office.

+0

Это был первый метод, который я думал об этом, но я не нравится идея добавления дополнительного поля на потому что, как я уже сказал, я стараюсь держать все как можно меньше. – FtDRbwLXw6

+0

Понял, и, кроме того, мне очень нравится предложение Кайла. – Archer

0

Возможно, они могут пометить часть Office строки поиска? Подобно @office, пользователь может набирать john @ scranton или john smith @scranton.

+0

Этот метод очень похож на @ KyleMacey, но немного менее гибкий, если я когда-либо захочу добавить дополнительное поле поиска (я думаю, что 'john @ scranton @ pennsylvania' будет путать для пользователей. – FtDRbwLXw6

Смежные вопросы