coldfusion cfform autosuggest — как передать locationid, когда пользователю предлагается locationname?

#coldfusion #autosuggest #cfform

#coldfusion #автоматическое предложение #cfform

Вопрос:

Я решил, что самое время начать использовать cfform (прошло 3 минуты, и я уже столкнулся с первым камнем преткновения!)

Я хочу, чтобы у пользователей был автоматический ввод текста для выбора города. В моей базе данных у меня есть locationname и locationids.

например

 ----------------------------
locationid   |   locationname
----------------------------
1      |      London
2      |      New York
3      |      Paris
etc.
-----------------------------
 

Пользователь начнет вводить locationame — я хочу, чтобы autosuggest показывал совпадающие имена местоположений, но когда они отправляют форму, я действительно хочу, чтобы locationid был передан.

Как, черт возьми, мне сделать это с помощью cfform?

Комментарии:

1. У вас есть дилемма, которая не имеет никакого отношения к программному коду. Имена местоположений не являются уникальными. В приведенных вами примерах есть Лондон, Онтарио и Лондон, Англия. Вам нужен план для пользователя, чтобы предоставить вам конкретную информацию. Как только вы узнаете, как вы хотите справиться с этим, вы можете беспокоиться о его кодировании.

2. Очень жаль, что человек, который отклонил этот вопрос, недостаточно храбр, чтобы объяснить, почему.

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

4. Если вам нужно, чтобы оно соответствовало, почему бы не использовать a <select> Таким образом, чтобы пользователь не мог что-то пропустить, и вам не пришлось бы беспокоиться о том, что пользователь введет правильное уникальное местоположение. Как бы мало ни был связан ответ квиспела с вопросом, это было бы хорошим решением вашей проблемы.

5. Спасибо, Дэн и Уилл = очень ценим вашу помощь. Как вы говорите, имена местоположений не уникальны (я перефразировал пример в моем вопросе — я включаю округ для ясности).

Ответ №1:

В первую очередь, никогда не используйте cfform или любую другую хрень, связанную с Coldfusion, связанную с пользовательским интерфейсом.
Вместо этого взгляните на отличный плагин Typeahead jQuery из Twitter: http://twitter.github.io/typeahead.js/examples /

Комментарии:

1. Минус 1. Хотя критика cfform популярна на этом форуме, ваш ответ не имеет ничего общего с вопросом, который касается идентификатора местоположения.

2. Спасибо квиспелу и Дэну, действительно, казалось бы, что лучше всего больше не использовать CF для интерфейса. Я использовал плагин jquery (подробности выше) — спасибо за вашу помощь, очень признателен.

Ответ №2:

На самом деле вы можете просто использовать имя местоположения и искать идентификатор при отправке, если имена ваших местоположений уникальны. Если это не так, как в примере с Лондоном, Онтарио, тогда вам нужно включить название штата или округа в значение поиска, разделенное запятыми, чтобы вы могли снова проанализировать название местоположения при отправке формы. Регулярное выражение может удалить LocationName в одной группе и StateName в следующей группе. Затем выполните запрос, в котором location = LocationName и state = StateName .

Комментарии:

1. Спасибо dcoli — да, я согласен (я перефразировал в своем вопросе — я делаю, как вы говорите, а также включаю округ для клэрти) — спасибо за вашу помощь 🙂