hosein
4 سال پیش توسط hosein مطرح شد
4 پاسخ

تکمیل خودکار در جاوااسکریپت

سلام وقت بخیر
چطور میتونم یک autocompelet پیاده سازی کنم که با هر کلمه ای ک تایپ میشه یک درخواستی به سرور بده و اطلاعات مشابه اون رو نشون بده
Live Search autocomplete
ممنون میشم راهنمایی کنید


ثبت پرسش جدید
رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

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

اگر بزنه a به دیتابیس میگه همه اونایی رو بده که a دارند

select * from search where title like '%first_user_input%'

و بقیه جستجو رو سمت کاربر انجام میدادم


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

    ‬<label for="country">Choose your country from the list:</label>
    <input list="countries" type="text" name="country" id="country">

    <datalist id="cuntries">
        <option value="UK">
        <option value="Germany">
        <option value="USA">
        <option value="Japan">
        <option value="India">
    </datalist>

hosein
@asadihosein351 4 سال پیش مطرح شد
0

@Rp76
ممنون
ولی میخوام ۱۲۵۰ تا object رو از سرور بگیرم یعنی میخوام شهرهای ایران رو از سرور بگیریم اگر بیام کلش رو یکبار بگیرم ک فکر کنم زمانبر باشه اگرم بخوام هر بار درخواست بدم ک کار خوبی نیس موندم چکار کنم


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

ببین اینطوری میشه چیزی که توی زهن من هست
نمیدونم چطوری میگی 1250 تا ولی خوب گوش کن
اگر 1250 تا object داشته باشی 100% همه اونها با A شروع نمی‌شوند.
اگر کاربر وارد کنه *cat به صورت مثال شما قبل از این که ۲حرف بعدی رو وارد کنه درخواست دادی به سرور و همه اونایی که c داشتن رو اوری و لیست کردی مثل این :

cat
car
carpet
capital va ...

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

باید یه delay بعد از ورود کلمات رو در نظر بگیری
همچنین باید یه minimum تعداد حرف وارد شده رو هم در نظر بگیری

مثلا هر وقت کاربر بیش از ۲ حرف رو وارد کرد.. ۲۵۰ میلی ثانیه صبر کنی (چون شاید بخواهد حروف بیشتری رو وارد کنه) و بعد درخواست بزنی به سرور و لیست رو دریافت کنی
اینجوری خود به خود تعداد نتایج کاهش پیدا میکنه

میتونی خودت این ویژگی رو پیاده سازی کنی
یا از ابزارهای آماده الگو بگیری مثل: Select2


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام