Query ενώ πληκτρολογεί ο χρήστης

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από christos312 » 27 Σεπ 2011 19:21

Καλησπερα παιδια,

θελω να δημιουργησω μια φορμα αναζητησης αλλα οταν ο χρηστης αρχισει να πληκτρολογει να εμφανιζεται ενα κουτακι που με να του μειωνει τις επιλογες.

Αν για παραδειγμα εχω χωρες στην βαση δεδομενων και ο χρηστης αρχισει να γραφει τοτε θελω να βγαλω τις χωρες με το string που εχει μεχρι εκεινη την στιγμη.

Εψαξα και βρηκα κατι ετοιμα scriptakia αλλα θελω να κανω το δικο μου για να μαθω κιολας
:lol:

Η ερωτηση μου λοιπον ειναι, πως λειτουργει αυτο σε γενικες γραμμες; Ανιχνευω το onkeypressed με javascript και κανω συνεχεια query στην βαση με παραμετρους το καθε ξεχωριστο γραμμα;; Δηλαδη καθε ενα γραμμα θα αποτελει ενα execution του query?

Ευχαριστω εκ των προτερων :kaloe:
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από cherouvim » 27 Σεπ 2011 20:43

Καλά το σκέφτεσαι.

Πράγματα που πρέπει να προσέξεις (και ήδη λύνουν με configuration υφιστάμενα auto-complete libraries):
- μάλλον πρέπει να περιμένεις μερικά milliseconds πριν στείλεις το request στο server για να βεβαιωθείς οτι δεν πατήθηκε και άλλο γράμμα (γιατί δεν θέλεις κατά την πληκτρολόγηση του "τάβλι" να στείλεις 5 requests στο server). 100 με 200ms είναι ΟΚ
- ίσως δεν θέλεις να στείλεις request στο server για τιμές πεδίου μικρότερες από 2 χαρακτήρες (πχ δεν θέλεις να κάνεις query με "%m%" γιατί μπορεί να είναι ακριβό)
- ίσως θέλεις να εκτυπώσεις στο χρήστη τα 10 πρώτα (πιο σημαντικά) που σου έρχονται από το server
- ίσως θέλεις να cachάρεις τα requests για ίδια requests στο browser του χρήστη (πχ για όταν ο χρήστης είναι στο 3ο γράμμα της πληκτρολόγησης του "μαθαίνω" και "μαθηματικά")
- σε σπάνιες περιπτώσεις ίσως θέλεις να cachάρεις responses στο server (πχ για όταν έχεις 1 εκατομμύριο requests την ημέρα και πολλά από αυτά είναι ίδια)

Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από christos312 » 27 Σεπ 2011 21:15

cherouvim έγραψε:Καλά το σκέφτεσαι.

- μάλλον πρέπει να περιμένεις μερικά milliseconds πριν στείλεις το request στο server για να βεβαιωθείς οτι δεν πατήθηκε και άλλο γράμμα (γιατί δεν θέλεις κατά την πληκτρολόγηση του "τάβλι" να στείλεις 5 requests στο server). 100 με 200ms είναι ΟΚ
- ίσως δεν θέλεις να στείλεις request στο server για τιμές πεδίου μικρότερες από 2 χαρακτήρες (πχ δεν θέλεις να κάνεις query με "%m%" γιατί μπορεί να είναι ακριβό)
- ίσως θέλεις να εκτυπώσεις στο χρήστη τα 10 πρώτα (πιο σημαντικά) που σου έρχονται από το server
Για το πρωτο, τι εννοείς να περιμένω; Να περιμενω μερικα miliseconds μεχρι να εκτελεσω ξανα το query?

Για το δευτερο το ειχα υποψην μου, μην σου που θα αρχιζω το Search απο 3-4 χαρακτηρες και πανω

και το τριτο ειναι ολο το ζουμι της υποθεσης ;)

Οσο για τα αλλα 2 θα τα εχω υπόψιν αν εχω χρόνο (θα το χρησιμοποιήσω για πτυχιακή).

Μια ακομα ερωτηση, το javascript θα καλει με καθε ανίχνευση γράμματος κάποιο php αρχειο; η το query θα εκτελείτε μέσα στο javascript;
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από fafos » 27 Σεπ 2011 22:28

an thes na ftiaxeis kati diko sou, xekina apo ta apla kai vasika giati apo thn teleutaia sou protash katalavaino oti den gnorizeis pos douleuei h javascript..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από christos312 » 28 Σεπ 2011 01:46

Nop No sir, δεν ξερω... Κατι πολυ απλα πραγματακια, κατι tweaks που εκανα εδω και κει αλλα τπτ εις βαθος.

Γι' αυτο και ρώτησα άλλωστε :kaloe:
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από fafos » 28 Σεπ 2011 03:16

christos312 έγραψε:Nop No sir, δεν ξερω... Κατι πολυ απλα πραγματακια, κατι tweaks που εκανα εδω και κει αλλα τπτ εις βαθος.

Γι' αυτο και ρώτησα άλλωστε :kaloe:
Oraiotata.. to proto pou matheneis gia ta javascripts einai oti trexoun apo thn pleura tou xrhsth kai oxi tou server (opos h php, asp klp)

me auto to dedomeno an afhname ton xrhsth na kalei queries ths mysql meso javascript den tha eixe meinei orthios server.. ola ta sites tha eixan mia tourkikh h aravikh shmaia kai kati akatalavistika aravoagglika..

se scripts opos ta autocomplete prepei na xrhsimopoihseis php gia na "travhkseis" ta dedomena pou thes na listareis ston xrhsth..
to script sthn pragmatikothta trexei sto "background" thn entolh sto php arxeio na psaksei gia kati.. p.x.

select title from categories where title like '$leksi%'

otan oi synthikes einai oi katalhles (dhladh, yparxei kati sthn vash pou na arxizei me auto pou ektyponei o xrhsths sthn forma kai exei ektyposei pano apo X xarakthres) h php aplos ektyponei to apotelesma..

auto to apotelesma to pairnei meta to javascript kai to parousiazei se ena aplo div to opoio htan kryfo mexri tora (afou den eixe kalesei to php) kai me thn katalhlh css to "zygizei" na emfanizetai kato apo to pedio ths formas...

ola auta vevea akougontai eukola alla den einai... giauto kai oi perissoteroi aplos protimoun ta etoima gia na kanoun thn douleia tous (p.x. http://jqueryui.com/demos/autocomplete/)

an thes na matheis ta ajaxoeidh ksekina me ta vasika (deixe / krypse divs, load dedomena apo arxeia, steile dedomena meso dynamikhs glossas (px php) klp)
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
christos312
Δημοσιεύσεις: 126
Εγγραφή: 13 Νοέμ 2005 22:13
Επικοινωνία:

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από christos312 » 28 Σεπ 2011 15:56

Done, ευχαριστώ για το ξεκαθάρισμα!!!

Δεν θελω να χρησιμοποιήσω έτοιμα γιατι μετά δεν θα μαθω τπτ :P

Θα τους ρίξω μια ματιά να κλέψω ιδεες παντός
Εικόνα
"All This Has Happened Before And It Will Happen Again.."
Battlestar Galactica RULEZZ

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Query ενώ πληκτρολογεί ο χρήστης

Δημοσίευση από Khronos » 28 Σεπ 2011 16:10

Ρίξε μια ματιά εδώ να καταλάβεις τι γίνεται και μετά χρησιμοποίησε τα έτοιμα (jquery ftw :P)

http://www.w3schools.com/ajax/default.asp

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες