Search - Username/tags

Tags:    php json ajax javascript

Heej Udviklere.
Hvordan ville i bære jer ad med at tjekke om en string indeholder visse bogstaver i en hvis rækkefølge?
Jeg har lavet mig en searchBox, og skal tjekke om de usernames jeg henter ned fra databasen, indeholder bogstaverne tastet i feltet, så jeg kan se om de skal smides væk eller printes.



6 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 12 karma
Sorter efter stemmer Sorter efter dato
er det bare en string du søger efter ??
så kan du anvende str.indexOf eller str.search
http://stackoverflow.com/questions/354110/in-javascript-what-is-the-difference-between-indexof-and-search

noget ala
Fold kodeboks ind/udKode 


eller skal det retunerende json array bare indeholde et eller flere af bogstaverne uanset rækkefølge ??


men er der grund til at få alle brugernavne return ??
ville det ikke være smartere at kun få de brugernavne retur der opfyldte betingelserne ?? så er det jo bare at teste om den retunerede string er tom !, dette vil gøre det nemmere for dig, da du kan anvende php og sql til søgning, og ikke sende flere data retur end der skal brugers.




Indlæg senest redigeret d. 08.02.2015 08:34 af Bruger #16075

Kunne ikke lige regne en måde at gøre det igennem mysqli, uden at hente hele databasen ned, men det er et problem til senere bekymring

det er ellers ganske nemt!

hvis du kigger i dit spm
http://www.udvikleren.dk/forum/46445/ajax-dynamisk-text-opdatering-/
har du denne linje i js
xmlHttp.send("chat=true&updateFriendRequests=true");
der sender du 2 variabler med over, du kunne sende din søgtext over som variabel istedet, og lave en søgning med LIKE
http://www.w3schools.com/sql/sql_like.asp
og retunerer så bare dit resultat i et json encodet array

så er det jo bare at teste om den retunerede string er tom !,

er den ikke tom så udskriver du brugernavne, og ellers en besked om "ingen brugernavne"


noget andet du kunne kigge på i sql er kommandoen IN
http://www.tutorialspoint.com/mysql/mysql-in-clause.htm

eller i PHP
http://php.net/manual/en/function.in-array.php
http://www.w3schools.com/php/func_array_in_array.asp


NB: som "dan" var inde på kan man bruge regex til søgning (måske ikke i dette tilfælde)
regex kan bruges både serverside og clientside

regex guide (advarsel !! dette er ikke får småbørn, et par kander stærk kaffe/the er nødvendigt)
http://www.eksperten.dk/guide/1156 del 1
http://www.eksperten.dk/guide/1157 del 2
http://www.eksperten.dk/guide/1160 del 3
http://www.eksperten.dk/guide/1162 del 4

hvor om altig er !!, man bør have en grundlæggende viden om regexp da det er et stærkt værktøj.

js
http://www.regular-expressions.info/
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp
http://www.w3schools.com/jsref/jsref_obj_regexp.asp

php
http://php.net/manual/en/function.preg-replace.php
http://php.net/manual/en/function.preg-match.php

kig evt på disse søgninger
https://www.google.com/search?q=js+regex
https://www.google.com/search?q=php+regex
https://www.google.com/search?q=mysql+regex



Indexof kræver ikke noget loop, den sammenligner i et array af elementer



Med regex



Mange tak for svarene. (:
Det som jeg er ude efter, er at den skal tage de tegn/bogstaver der er i mit input, og så skal den output alle de usernames der indeholder de tegn/bogstaver i den rigtig rækkefølge. Kunne ikke lige regne en måde at gøre det igennem mysqli, uden at hente hele databasen ned, men det er et problem til senere bekymring. Mit største problem indtilvidere har været at det meste af tiden er det jo kun 2 - 4 bogstaver af navnet der er skrevet, skal skal tjekke det med et for loop, og der kunne jeg ikke få indexof til at virke.

Mvh. Wunderstrudel



Ahhh Dan du er dagens helt! Ved ikke lige hvorfor fa'en jeg ikke selv så det.
Mange tak for hjælpen, til jer begge to! (:




t