Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Autopodpowiadanie
tomall
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 1.03.2009

Ostrzeżenie: (0%)
-----


Witam,

Wykorzystałem na swojej stronie skrypt autouzupełniania zamieszczony w książce "AJAX i PHP Tworzenie interaktywnych aplikacji internetowych.". Skrypt działa prawidłowo, lecz chciałem go trochę przerobić, aby dostosować go do moich potrzeb. Skrypt działa na takiej zasadzie, że w momencie pojawienia się podpowiedzi stają się one linkami i kliknięcie w podpowiedź powoduje przejście do innej strony. Jest to dobre rozwiązanie w przypadku wyszukiwarek np. google suggest, natomiast w moim przypadku skrypt ma służyć do uzupełnienia pola formularza. Będzie on wykorzystany w formularzu do wysyłania prywatnych wiadomości i jego celem ma być podpowiadanie nazw użytkowników. Zatem chciałbym aby wybranie podpowiedzi nie przenosiło do innej strony, a powodowało wpisanie nazwy w pole input. Próbowałem ten problem rozwiązać samemu kombinując z JS, ale chyba jeszcze zbyt słabo znam JS. Skrypt jest dość długi dlatego umieszczam go w osobnym pliku.

http://wrzut.net/qe3h2159sh5s/suggest.txt.html

Ten post edytował tomall 7.06.2009, 14:09:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tomall
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 1.03.2009

Ostrzeżenie: (0%)
-----


Znalazłem przyczynę problemu. Tekst uzupełnia się w momencie kiedy wybiorę podpowiedź z listy za pomocą strzałek klawiatury. Na mysz nie reaguje i nie wstawia tekstu do inputu. W książce wyczytałem że właśnie na mysz ten skrypt nie działa. A kod odpowiedzialny za wybór opcji z klawiatury to:
Kod
/* funkcja, która wybiera obszar w obiekcie tekstowym, przekazywanym jako jej parametr */
function selectRange(oText, start, length)
{  
   // sprawdz rodzaj przeglądarki - IE czy FF
   if (oText.createTextRange)
   {
     //IE
     var oRange = oText.createTextRange();
     oRange.moveStart("character", start);
     oRange.moveEnd("character", length - oText.value.length);
     oRange.select();
   }
   else
     // FF
     if (oText.setSelectionRange)
     {
       oText.setSelectionRange(start, length);
     }
   oText.focus();
}


zatem bez dodatkowych funkcji ani rusz. : /
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 11:49