#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 — да, я согласен (я перефразировал в своем вопросе — я делаю, как вы говорите, а также включаю округ для клэрти) — спасибо за вашу помощь 🙂