Autor Zpráva
Milan1236000
Profil
Mám našeptávač, do skriptu pomocí php vypisuji položky z několika polí. Chtěl bych, aby se v našeptávači zobrazilo tohle:
Nějaký autor (autor)
místo tohoto:
Nějaký autor <b>(autor)</b>
. Jde to?

Do skriptu se to vypisuje takto:
while(isset($a[$i]))
{
  if ($i>0) echo "\", \"";
  echo $a[$i] . " <b>autor</b>";
  $i++;
}
___
Když už jsem u toho, šlo by to vypisovat tak, jak jsem napsal, ale po kliknutí na položku by se do vyhledávacího pole vypsalo jen echo $a[$i] bez . " <b>autor</b>"?
Keeehi
Profil
Za to escapování bude zodpovědný kód javascriptu, který jsi tu neuvedl.

po kliknutí na položku by se do vyhledávacího pole vypsalo jen echo $a[$i]
To samé, neznáme JS kód.

Nejlepší to bude ve formě živé ukázky.
Milan1236000
Profil
Keeehi:
Živá ukázka
Milan1236000
Profil
Jde to v tomto našeptávači realizovat? Pokud ne, nezná někdo nějaký jiný, který by to umožňoval?
Chtěl bych, aby ten (formátovaný) kus textu byl jakoby "na pozadí" toho našeptávače, takže by se tam zobrazoval, ale po kliknutí na ten našeptávaný text se už nevypsal. Nebo by možná byl ještě lepší ten, co jsem právě popsal, ale s tím, že by se kliknutím na nešeptávaný dotaz rovnou přešlo na danou stránku (jako to má seznam.cz). Díky.
juriad
Profil
Stačí si přečíst manuál, jak funguje source, jak modifikovat zobrazené možnosti pomocí _renderItem (viz též stackoverflow.com/questions/17568630/jqueryui-version-1-10-autocomplete-how-to-set-renderitem). Přo přejití na stránku použij událost select.

Živá ukázka
Milan1236000
Profil
juriad:
Díky, mrknu na to. Je to dobrý, až na to, že když se do pole napíše část textu, která je tučně u hodně položek, tak to najde všechny, které tu část obsahují. Např. když zadám řetězec "ter" sem. Sice to nevadí, ale jde to ještě nějak upravit?
Kcko
Profil
Milan1236000:
api.jqueryui.com/autocomplete/#entry-examples
Using a custom source callback to match only the beginning of terms...

Podle tohohle můžeš postupovat a ten regulár si upravit, aby dělal co potřebuješ.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: