Autor | Zpráva | ||
---|---|---|---|
panterek Profil |
#1 · Zasláno: 21. 6. 2013, 09:18:08
Ahoj,
nevím, jak lépe to nazvat, proto se mi nedaří najít ani vhodný dotaz pro google, který by mi jistě poradil. V DB mám nějaká jména a chtěl bych, aby došlo k fulltextového vyhledávání v momentě, kdy do <input type="text".... /> začnu psát třeba "novo". A mně vyjedou všechny výsledky, které obsahují tento řetězec (novotný, blablanovoblabla). Čili provede se nějaký SELECT name FROM ... a provede se v reálném čase. Vybrané slovo se vloží do formuláře a budu jej moct odeslat... poradil by někdo? díky |
||
juriad Profil |
Vytvoř si další PHP soubor, který bude podle parametru name hledat v databázi a výsledek dotazu bude vypisovat ve formátu JSON.
Například soubor nameService.php <?php if(!isset($_REQUEST['name']) { # REQUEST zajistí, že mu bude jedno, jestli je name v $_GET nebo v $_POST header('Bad Request', true, 400); exit; } $name = $_REQUEST['name']; # … pripojeni k databazi … $query = mysql_query("SELECT name FROM tabulka WHERE name LIKE '%$name%' ORDER BY name"); $vysledek = []; while($row = mysql_fetch_assoc($query)) { $vysledek[] = $row['name']; } echo json_encode(vysledek); Až rozchodíš to, že ti nameService.php?name=novo bude vracet správný výsledek, nastavíš inputu onkeyup event listener, který bude tu nameService volat AJAXem (jen v případě, že se hodnota inputu změnila): Pomůžete mi někdo vytvořit ajax auto submit?. Jako callback funkci použiješ něco jako:
function(odpoved) { var jmena = JSON.parse(odpoved); // funguje od IE8, pro nižší je potřeba polyfill if(jmena.length > 0) { document.getElementById('#id-inputu').value = jmena[0]; // tady by to chtelo vymyslet neco lepsiho } } |
||
Časová prodleva: 3 dny
|
|||
panterek Profil |
Díky ti moc...podařilo se to rozjet.
Posléze jsem ještě hledal a našel hotové řešení, kdyby to někomu pomohlo: http://www.htmlblog.us/jquery-autocomplete http://jamesskidmore.com/scripts/smartsuggest/ |
||
Časová prodleva: 11 let
|
0