PDA

View Full Version : ایجاد یک input مانند سرچ گوگل



roya_django
چهارشنبه 13 اردیبهشت 1396, 05:24 صبح
سلام

من قصد دارم یه input مثل سرچ گوگل درست کنم که وقتی کاربر توش شروع به تایپ کرد
یه سری پیشنهاد بهش ارائه بده و کاربر این اختیار رو داره که از بین اونا یکی رو انتخاب بکنه و البته می تونه ازشون هم انتخاب نکنه

و اون چیزی که خودش میخاد رو داخل ورودی بنویسه. مثل سرچ گوگل که یه سری پیشنهاد میده و ما میتونیم از بینشون انتخاب کنیم و البته
این اختیار رو هم داریم که پیشنهاد شده ها رو انتخاب نکنیم و عبارتی که در ذهن خودمون هست رو تایپ کنیم.

من هم دنبال ایجاد همچین کاری هستم.

ایده ای که به ذهنم می رسه اینه که روی input یک رویداد keyup تعریف کنم و وقتی کاربر تایپ کردن رو شروع کرد از طریق ajax به پایگاه وصل شم
و پیشنهادات رو در بیارم. تا اینجای کار مشکلی نیست اما کار از اونجا سخت میشه که من نمیدونم این پیشنهادات رو چطور به کاربر نمایش بدم . اگه قرار بود که
کاربر فقط از بین پیشنهادات حق انتخاب داشته باشه که خیلی ساده میشد افزونه ی select2 جی کوئری به راحتی اینکارو میکنه
اما اینکه میتونه چیزی غیر از پیشنهاد شده ها وارد کنه منو گیج کرده . شخصی در استک اورفلو همین سوال رو پرسیده
http://stackoverflow.com/questions/6169659/how-do-i-create-a-suggestion-drop-down-list-like-googles



اما من نتوستم پاسخم رو اونجا بگیرم . ایده ی اینکه یه input معمولی برای تایپ کردن کاربر و یه لیست کشویی هم زیرش داشته باشیم تا پیشنهاداتی که از پایگاه خوندیم رو بهش اضافه کنیم (به عنوان option) در ابتدا خوب به نظر می رسید اما این برای من مفید نیست چون :
فرض کنیم که من پیشنهادات رو به لیست کشویی اضافه کردم کاربر که بعد از وارد کردن هر کلمه نمیاد روی لیست کلیک کنه که ببینه من چی براش پیشنهاد اوردم.
من میخام طوری باشه که همزمان با تایپ کردن پیشنهادات هم بیان جلو روش
حالا به نظر شما ایده ی مناسب برای پیاده سازی قابلیت google-suggestions
چیه؟
سپاسگزارم

pc1990
چهارشنبه 13 اردیبهشت 1396, 16:06 عصر
سلام
ببیند به نظر میرسه ساختار گوگل یک ساختار ماشین لرنینگ هست یعنی اینکه با توجه به رفتار کاربر اگوبرداری میکنه و با استفاده از الگوریتم های خاص خود یکسری خروجی به شما میده اینکه شما تو سمت UI با چه تکنولوژی میخواین نمایش بدین زیاد مهم نیست باید یک ساختاری در پس زمینه داشته باشین که بتونه کلمات مرتبط رو باستخراج کنه و اینکه اونو تو خروجی نمایش بده از اونجایی که تو یه همچین ساختارهای هوش مصنوعی در ساختار زبان خیلی مهمه استفاده از اون کار نسبتا دشواریه پس شما یکی از راهکارهای ساده ای که دارید اینکه موضوعاتی که مرتبط با سایت شما هست (حدس)رو در یک دیتا بیس ذخیره کنید و اونو به کاربر نمایش بدید که این نوع خروجی زیاد به جواب کاربر نزدیک نیست.

plague
چهارشنبه 13 اردیبهشت 1396, 16:10 عصر
از Autocomplete کتابخانه jqueryui استفاده کن
https://jqueryui.com/autocomplete/