Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: google suggest
Forum PHP.pl > Forum > XML, AJAX > AJAX
linuxoida
Hej mam pytanko. Ponieważ mam taki skrypt google suggest. Oczywiście działa kiedy dane z bazy zaciągane z bazy są GET -em, a postem juz nie. Cały myk polega na tym, że w bazie posiadam rekordy z polskimi znakami i dlatego muszę te dane pobrać za pomocą posta. Nie wiem jak go przerobic mimo że zastosowana zmiana w tym poniższym kodzie nic nie wnosi. wyskakuje mi komunikat za każdym razem, że "Błąd podczas dostępu do serwera! TypeError: resultsXml.item(i).firstChild is null". Czy ktoś z Was wie jak to rozwiązać? Z góry dzięki za pomoc pozdro
  1. /* URL do strony PHP, która poda podpowiedzi dla danego słowa kluczowego*/
  2. var getFunctionsUrl = "suggest.php";
  3. /* URL który pokaże wyniki wyświetlane dla wybranej podpowiedzi */
  4. var phpHelpUrl="http://www.php.net/manual/en/function.";
  5. /* słowo kluczowe, dla którego wywołujemy żądanie HTTP*/
  6. var httpRequestKeyword = "";
  7. /* ostatnie słowo kluczowe, dla którego wysyłano żądanie*/
  8. var userKeyword = "";
  9. /* ilość podpowiedzi pojawiających się dla danego słowa kluczowego*/
  10. var suggestions = 0;
  11. /* maksymalna liczba znaków wyświetlanych w podpowiedzi*/
  12. var suggestionMaxLength = 30;
  13. /* flaga, która wskazuje, czy użytkownik skorzystał ze strzałek w górę lub w dół podczas ostatniego zdarzenia keyup*/
  14. var isKeyUpDownPressed = false;
  15. /* ostatnia podpowiedź użyta do autouzupełniania słowa kluczowego*/
  16. var autocompletedKeyword = "";
  17. /* flaga, która określa, czy są wyniki dla obecnego słowa kluczowego*/
  18. var hasResults = false;
  19. /* identyfikator używany do odwołania procesu oceny (metoda Timeout)*/
  20. var timeoutId = -1;
  21. /* obecnie wybrana (myszą lub strzałkami) podpowiedź*/
  22. var position = -1;
  23. /* obiekt pamięci podręcznej, zawierający podpowiedzi pobrane dla różnych słów kluczowych*/
  24. var oCache = new Object();
  25. /* minimalna i maksymalna pozycja widocznych podpowiedzi*/
  26. var minVisiblePosition = 0;
  27. var maxVisiblePosition = 9;
  28. // wartośc true owoduje wyświetlenie szczegółowego komunikatu o błędzie
  29. var debugMode = true;
  30. /* obiekt XMLHttpRequest, stworzony do komunikowania się z serwerem*/
  31. var xmlHttpGetSuggestions = createXmlHttpRequestObject();
  32. /* funkcja init obsługuje zdarzenie onload*/
  33. window.onload = init;
  34. //tworzy instancję obiektu XMLHttpRequest
  35. function createXmlHttpRequestObject()
  36. {
  37. // przechowa odowłanie do obiektu XMLHttpRequest
  38. var xmlHttp;
  39. // powinno zadziałać dla wszystkich przeglądarem z wyjątkiem IE6 i starszych
  40. try
  41. {
  42. // próbuje utworzyć obiekt XMLHttpRequest
  43. xmlHttp = new XMLHttpRequest();
  44. }
  45. catch(e)
  46. {
  47. // zakładając, że IE6 lub starsza
  48. var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
  49. "MSXML2.XMLHTTP.5.0",
  50. "MSXML2.XMLHTTP.4.0",
  51. "MSXML2.XMLHTTP.3.0",
  52. "MSXML2.XMLHTTP",
  53. "Microsoft.XMLHTTP");
  54. // próbuje wszystkie wartości progId, aż jedna zadziała
  55. for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++)
  56. {
  57. try
  58. {
  59. // próbuje stworzyć obiekt XMLHttpRequest
  60. xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
  61. }
  62. catch (e) {}
  63. }
  64. }
  65. // zwraca utworzony obiekt lub wyświetla komunikat o błędzie
  66. if (!xmlHttp)
  67. alert("Błąd podczas tworzenia obiektu XMLHttpRequest.");
  68. else
  69. return xmlHttp;
  70. }
  71. /* funkcja inicjująca stronę*/
  72. function init()
  73. {
  74. // pobiera element kontrolujący słowo kluczowe podane na wejściu
  75. var oKeyword = document.getElementById("keyword");
  76. // zapobiega uruchomieniu domyślnego autouzupełniania przeglądarki
  77. oKeyword.setAttribute("autocomplete", "off");
  78. // czyści zawartość słowa kluczowego i ustawia kursor w okienku tekstowym
  79. oKeyword.value = "";
  80. oKeyword.focus();
  81. // czas, po którym sprawdza się, czy nastąpiły zmiany w polu tekstowym
  82. setTimeout("checkForChanges()", 500);
  83. }
  84. /* funkcja, która dodaje słowo kluczowe do tablicy wartości */
  85. function addToCache(keyword, values)
  86. {
  87. // twrzy nowy wpis w tablicy pamięci podręcznej
  88. oCache[keyword] = new Array();
  89. // dodaje nowe wartości słów kluczowych do pamięci
  90. for(i=0; i<values.length; i++)
  91. oCache[keyword][i] = values[i];
  92. }
  93. /* funkcja, która sprawdza, czy słowo kluczowe jest już w pamięci lub próbuje znaleźć najdłuższe przedrostki z pamięci do niego pasujące. Następnie dodaje je do pamięci, jako odpowiadające wpisanemu słowu kluczowemu */
  94. function checkCache(keyword)
  95. {
  96. // sprawdza, czy słowo kluczowe jest już w pamięci
  97. if(oCache[keyword])
  98. return true;
  99. // próbuje odnaleźć najdłuższy przedrostek
  100. for(i=keyword.length-2; i>=0; i--)
  101. {
  102. // uzupełnia bieżące słowo kluczowe
  103. var currentKeyword = keyword.substring(0, i+1);
  104. // sprawdza, czy bieżący przedrostek słowa kluczowego jest już w pamięci
  105. if(oCache[currentKeyword])
  106. {
  107. // jeśli jest w pamięci
  108. var cacheResults = oCache[currentKeyword];
  109. // wyniki odpowiadające bieżącemu słowu kluczowemu
  110. var keywordResults = new Array();
  111. var keywordResultsSize = 0;
  112. // próbuje odnaleźć wszystkie funkcje pasujące do bieżącego przedrostka
  113. for(j=0;j<cacheResults.length;j++)
  114. {
  115. if(cacheResults[j].indexOf(keyword) == 0)
  116. keywordResults[keywordResultsSize++] = cacheResults[j];
  117. }
  118. // dodaje wszystkie przedrostki słowa kluczowego do pamięci
  119. addToCache(keyword, keywordResults);
  120. return true;
  121. }
  122. }
  123. // nie znaleziono funkcji
  124. return false;
  125. }
  126.  
  127. /* początkuje żądanie HTTP, w celu pobrania podpowiedzi dla wpisanego słowa kluczowego */
  128. function getSuggestions(keyword)
  129. {
  130. /* kontynuuje, jeśli wpisano jakieś znaki i ostatnio wciśniętym klawiszem nie była jedna z pionowych strzałek*/
  131. if(keyword != "" && !isKeyUpDownPressed)
  132. {
  133. // sprawdza, czy słowo jest w pamięci
  134. isInCache = checkCache(keyword);
  135. // jeśli jest...
  136. if(isInCache == true)
  137. {
  138. // pobiera wyniki z pamięci
  139. httpRequestKeyword=keyword;
  140. userKeyword=keyword;
  141. // wyświetla wyniki
  142. displayResults(keyword, oCache[keyword]);
  143. }
  144. // jeśli go nie ma w pamięci, wysyła noże żądanie HTTP
  145. else
  146. {
  147. if(xmlHttpGetSuggestions)
  148. {
  149. try
  150. {
  151. /* jeśli obiekt XMLHttpRequest nie jest zajęty obsługą poprzedniego żądnia... */
  152. if (xmlHttpGetSuggestions.readyState == 4 ||
  153. xmlHttpGetSuggestions.readyState == 0)
  154. {
  155. httpRequestKeyword = keyword;
  156. userKeyword = keyword;
  157. var httpRequestKeywords = document.getElementById('keyword').value;
  158. xmlHttpGetSuggestions.open("POST", getFunctionsUrl, true);
  159. xmlHttpGetSuggestions.onreadystatechange = handleGettingSuggestions;
  160. xmlHttpGetSuggestions.send("keywords="+encodeURIComponent(httpRequestKeywords));
  161. }
  162. // jeśli jest zajęty...
  163. else
  164. {
  165. // pobiera słowo, które wpisał użytkownik
  166. userKeyword = keyword;
  167. // czyści poprzednio ustawione czasy
  168. if(timeoutId != -1)
  169. clearTimeout(timeoutId);
  170. // ponawia próbę po 0.5 sekundy
  171. timeoutId = setTimeout("getSuggestions(userKeyword);", 500);
  172. }
  173. }
  174. catch(e)
  175. {
  176. displayError("Nie mogę połączyć się z serwerem:\n" + e.toString());
  177. }
  178. }
  179. }
  180. }
  181. }
  182. /* przekształca wszystkie obiekty potomne węzła XML na tablicę*/
  183. function xmlToArray(resultsXml)
  184. {
  185. // początkuje zmienną resultsArray
  186. var resultsArray= new Array();
  187. // przeszukuje w pętli wszystkie węzły XML, pobierając ich zawartość
  188. for(i=0;i<resultsXml.length;i++)
  189. resultsArray[i]=resultsXml.item(i).firstChild.data;
  190. // zwraca zawartość węzła w postaci tablicy
  191. return resultsArray;
  192. }
  193. /* obsługuje odpowiedź serwera, zawierającą podpowiedzi dla żądanego słowa kluczowego */
  194. function handleGettingSuggestions()
  195. {
  196. //po ukończeniu procesu, decyduje co zrobić z otrzymanymi danymi
  197. if (xmlHttpGetSuggestions.readyState == 4)
  198. {
  199. // tylko jeśli status żądania HTTP jest "OK"
  200. if (xmlHttpGetSuggestions.status == 200)
  201. {
  202. try
  203. {
  204. // przetwarza odpowiedź serwera
  205. updateSuggestions();
  206. }
  207. catch(e)
  208. {
  209. // wyświetla komunikat o błędzie
  210. displayError(e.toString());
  211. }
  212. }
  213. else
  214. {
  215. displayError("Wystąpił problem podczas pobierania danych:\n" +
  216. xmlHttpGetSuggestions.statusText);
  217. }
  218. }
  219. }


  1. /* funkcja przetwarzająca odpowiedź serwera */
  2. function updateSuggestions()
  3. {
  4. // pobiera odpowiedź serwera
  5. var response = xmlHttpGetSuggestions.responseText;
  6. // błąd serwera?
  7. if (response.indexOf("ERRNO") >= 0 || response.indexOf("error:") >= 0
  8. || response.length == 0)
  9. throw(response.length == 0 ? "Void server response." : response);
  10. // pobiera element dokumentu
  11. response = xmlHttpGetSuggestions.responseXML.documentElement;
  12. // zakłada nową tablicę z nazwami funkcji
  13. nameArray = new Array();
  14. // sprawdza, czy są wyniki dla szukanego słowa kluczowego
  15. if(response.childNodes.length)
  16. {
  17. /* pobieramy nowe nazwy funkcji z pliku XML w postaci tablicy */
  18. nameArray= xmlToArray(response.getElementsByTagName("name"));
  19. }
  20. // sprawdza, czy są już poszukiwane inne słowa kluczowe
  21. if(httpRequestKeyword == userKeyword)
  22. {
  23. // wyświetla tablicę wyników
  24. displayResults(httpRequestKeyword, nameArray);
  25. }
  26. else
  27. {
  28. // dodaje wyniki do pamięci
  29. // nie trzeba wyświetlać wyników, ponieważ są już niepotrzebne
  30. addToCache(httpRequestKeyword, nameArray);
  31. }
  32. }
  33.  
  34. /* zapełnia listę podpowiedziami*/
  35. function displayResults(keyword, results_array)
  36. {
  37. // rozpoczyna tworzenie tabeli HTML, w której umieścimy wyniki
  38. var div = "<table>";
  39. // jeśli poszukiwane słowo kluczowe nie znajduje się w pamięci, dodaje je do niej
  40. if(!oCache[keyword] && keyword)
  41. addToCache(keyword, results_array);
  42. // jeśli tablica wyników jest pusta, wyświetla komunikat
  43. if(results_array.length == 0)
  44. {
  45. div += "<tr><td>Nie znaleziono dopasowania dla <strong>" + keyword +
  46. "</strong></td></tr>";
  47. // ustawia flagę braku wyników i zeruje licznik
  48. hasResults = false;
  49. suggestions = 0;
  50. }
  51. // wyświetla wyniki
  52. else
  53. {
  54. // przestawia indeks wyróżnionej podpowiedzi
  55. position = -1;
  56. // przestawia flagę określającą, czy wciśnięto którąś ze strzałek
  57. isKeyUpDownPressed = false;
  58. /* ustawia flagę informującą o dopasowania funkcji do podanego słowa kluczowego */
  59. hasResults = true;
  60. // pobiera z pamięci liczbę wyników
  61. suggestions = oCache[keyword].length;
  62. // przegląda w pętli wyniki i tworzy ich listę w HTML
  63. for (var i=0; i<oCache[keyword].length; i++)
  64. {
  65. // pobiera bieżącą nazwę funkcji
  66. crtFunction = oCache[keyword][i];
  67. // ustawia łańcuch odnośnika do dopasowanej funkcji na jej nazwę
  68. crtFunctionLink = crtFunction;
  69. // zastępuje znak _ w łańcuchu odnośnika znakiem -
  70. while(crtFunctionLink.indexOf("_") !=-1)
  71. crtFunctionLink = crtFunctionLink.replace("_","-");
  72. // zaczyna tworzyć rząd tabeli HTML, który zawiera odnośnik do oficjalnej strony z pomocą dotyczącą szukanej funkcji
  73. div += "<tr id='tr" + i + "' onclick='location.href=document.getElementById(\"a" +
  74. i + "\").href;' onmouseover='handleOnMouseOver(this);' " +
  75. "onmouseout='handleOnMouseOut(this);'>" + "<td align='left'><a id='a" + i +
  76. "' href='" + phpHelpUrl + crtFunctionLink + ".php";
  77. // sprawdza czy długość nazwy wybranej funkcji przekracza dopuszczalną liczbę znaków, które mogą być wyświetlone
  78. if(crtFunction.length <= suggestionMaxLength)
  79. {
  80. // pogrubia dopasowany przedrostek funkcji i słowa kluczowego
  81. div += "'><b>" + crtFunction.substring(0, httpRequestKeyword.length) + "</b>"
  82. div += crtFunction.substring(httpRequestKeyword.length, crtFunction.length) +
  83. "</a></td></tr>";
  84. }
  85. else
  86. {
  87. // sprawdza czy długość nazwy wybranego słowa kluczowego przekracza dopuszczalną liczbę znaków, które mogą być
  88. //wyświetlone
  89. if(httpRequestKeyword.length < suggestionMaxLength)
  90. {
  91. /* pogrubia dopasowany przedrostek funkcji i słowa kluczowego */
  92. div += "'><b>" + crtFunction.substring(0, httpRequestKeyword.length) + "</b>"
  93. div += crtFunction.substring(httpRequestKeyword.length, suggestionMaxLength) +
  94. "</a></td></tr>";
  95. }
  96. else
  97. {
  98. // pogrubia całą nazwę funkcji
  99. div += "'><b>" + crtFunction.substring(0,suggestionMaxLength) +
  100. "</b></td></tr>"
  101. }
  102. }
  103. }
  104. }
  105. // koniec tabeli HTML
  106. div += "</table>";
  107. // pobiera obiekty oSuggest i oScroll
  108. var oSuggest = document.getElementById("suggest");
  109. var oScroll = document.getElementById("scroll");
  110. // przewija na górę listy
  111. oScroll.scrollTop = 0;
  112. // aktualizuje i wyświetla listę podpowiedzi
  113. oSuggest.innerHTML = div;
  114. oScroll.style.visibility = "visible";
  115. // jeśli były jakieś wyniki uzupełniamy słowo kluczowe do wartości pierwszej funkcji
  116. if(results_array.length > 0)
  117. autocompleteKeyword();
  118. }
  119.  
  120. /* funkcja, która okresowo sprawdza, czy wprowadzono zmiany w oknie tekstowym */
  121. function checkForChanges()
  122. {
  123. // pobiera obiekt słowa kluczowego
  124. var keyword = document.getElementById("keyword").value;
  125. // sprawdza, czy słowo kluczowe jest puste
  126. if(keyword == "")
  127. {
  128. // ukrywa podpowiedzi
  129. hideSuggestions();
  130. // czyści słowo kluczowe
  131. userKeyword="";
  132. httpRequestKeyword="";
  133. }
  134. // ustawia licznik czasu dla nowego sprawdzenia
  135. setTimeout("checkForChanges()", 500);
  136. // sprawdza, czy wprowadzono zmiany
  137. if((userKeyword != keyword) && (autocompletedKeyword != keyword) &&
  138. (!isKeyUpDownPressed))
  139. // aktualizuje podpowiedź
  140. getSuggestions(keyword);
  141. }



  1. /* funkcja obsługująca wciśnięcie klawisza*/
  2. function handleKeyUp(e)
  3. {
  4. // pobiera zdarzenie
  5. e = (!e) ? window.event : e;
  6. // pobiera adresata zdarzenia
  7. target = (!e.target) ? e.srcElement : e.target;
  8. if (target.nodeType == 3)
  9. target = target.parentNode;
  10. // pobiera kod znaku naciśniętego klawisza
  11. code = (e.charCode) ? e.charCode :
  12. ((e.keyCode) ? e.keyCode :
  13. ((e.which) ? e.which : 0));
  14. // sprawdza, czy zdarzenie było typu keyup
  15. if (e.type == "keyup")
  16. {
  17. isKeyUpDownPressed =false;
  18. // sprawdza, czy pojawił się któryś z ważnych dla aplikacji znaków
  19. if ((code < 13 && code != 8) || (code >=14 && code < 32) ||
  20. (code >= 33 && code <= 46 && code != 38 && code != 40) ||
  21. (code >= 112 && code <= 123))
  22. {
  23. // ignoruje pozostałe znaki
  24. }
  25. else
  26. /* po wciśnięciu klawisza Enter, przechodzi do strony pomocy PHP dla danej funkcji */
  27. if(code == 13)
  28. {
  29. // sprawdza, czy jakaś funkcja jest właśnie wybrana
  30. if(position>=0)
  31. {
  32. location.href = document.getElementById("a" + position).href;
  33. }
  34. }
  35. else
  36. // po naciśnięciu strzałki w dół przechodzi do kolejnej podpowiedzi
  37. if(code == 40)
  38. {
  39. newTR=document.getElementById("tr"+(++position));
  40. oldTR=document.getElementById("tr"+(--position));
  41. // usuwa stary wybór
  42. if(position>=0 && position<suggestions-1)
  43. oldTR.className = "";
  44.  
  45. // wybiera nową podpowiedź i aktualizuje słowo kluczowe
  46. if(position < suggestions - 1)
  47. {
  48. newTR.className = "highlightrow";
  49. updateKeywordValue(newTR);
  50. position++;
  51. }
  52. e.cancelBubble = true;
  53. e.returnValue = false;
  54. isKeyUpDownPressed = true;
  55. // przewija podpowiedzi w dół, jeśli widoczne okno nie jest już aktualne
  56. if(position > maxVisiblePosition)
  57. {
  58. oScroll = document.getElementById("scroll");
  59. oScroll.scrollTop += 18;
  60. maxVisiblePosition += 1;
  61. minVisiblePosition += 1;
  62. }
  63. }
  64. else
  65. // naciśnięcie strzałki w góę przenosi nas do poprzedniej podpowiedzi
  66. if(code == 38)
  67. {
  68. newTR=document.getElementById("tr"+(--position));
  69. oldTR=document.getElementById("tr"+(++position));
  70. // usuwa stare zaznaczenie
  71. if(position>=0 && position <= suggestions - 1)
  72. {
  73. oldTR.className = "";
  74. }
  75. // zaznacza nową podpowiedź i aktualizuje słowo kluczowe
  76. if(position > 0)
  77. {
  78. newTR.className = "highlightrow";
  79. updateKeywordValue(newTR);
  80. position--;
  81. // przewija okno w górę, jeśli dane w nim są już nieaktualne
  82. if(position<minVisiblePosition)
  83. {
  84. oScroll = document.getElementById("scroll");
  85. oScroll.scrollTop -= 18;
  86. maxVisiblePosition -= 1;
  87. minVisiblePosition -= 1;
  88. }
  89. }
  90. else
  91. if(position == 0)
  92. position--;
  93. e.cancelBubble = true;
  94. e.returnValue = false;
  95. isKeyUpDownPressed = true;
  96. }
  97. }
  98. }
  99. /* funkcja uzupełniająca słowo kluczowe do warości wybranej podpowiedzi */
  100. function updateKeywordValue(oTr)
  101. {
  102. // pobiera obiekt słowa kluczowego
  103. var oKeyword = document.getElementById("keyword");
  104. // pobiera odnośnik do wybranej funkcji
  105. var crtLink = document.getElementById("a" +
  106. oTr.id.substring(2,oTr.id.length)).toString();
  107. // zastępuje znaki - znakami _ i pomija rozszerzenie .php
  108. crtLink = crtLink.replace("-", "_");
  109. crtLink = crtLink.substring(0, crtLink.length - 4);
  110. // aktualizuje słowo kluczowe
  111. oKeyword.value = unescape(crtLink.substring(phpHelpUrl.length, crtLink.length));
  112. }
  113. /* funkcja usuwająca styl podpowiedzi */
  114. function deselectAll()
  115. {
  116. for(i=0; i<suggestions; i++)
  117. {
  118. var oCrtTr = document.getElementById("tr" + i);
  119. oCrtTr.className = "";
  120. }
  121. }
  122. /* funkcja obsługująca pojawienie się kursora myszy w obszarze podpowiedzi */
  123. function handleOnMouseOver(oTr)
  124. {
  125. deselectAll();
  126. oTr.className = "highlightrow";
  127. position = oTr.id.substring(2, oTr.id.length);
  128. }
  129. /* funkcja obsługująca wyjście kursora myszy z obszaru podpowiedzi */
  130. function handleOnMouseOut(oTr)
  131. {
  132. oTr.className = "";
  133. position = -1;
  134. }
  135.  
  136. /* funkcja sterująca łańcuchem */
  137. function encode(uri)
  138. {
  139. if (encodeURIComponent)
  140. {
  141. return encodeURIComponent(uri);
  142. }
  143.  
  144. if (escape)
  145. {
  146. return escape(uri);
  147. }
  148. }
  149. /* funkcja ukrywająca warstwę z popdpowiedziami */
  150. function hideSuggestions()
  151. {
  152. var oScroll = document.getElementById("scroll");
  153. oScroll.style.visibility = "hidden";
  154. }
  155. /* funkcja, która wybiera obszar w obiekcie tekstowym, przekazywanym jako jej parametr */
  156. function selectRange(oText, start, length)
  157. {
  158. // sprawdz rodzaj przeglądarki - IE czy FF
  159. if (oText.createTextRange)
  160. {
  161. //IE
  162. var oRange = oText.createTextRange();
  163. oRange.moveStart("character", start);
  164. oRange.moveEnd("character", length - oText.value.length);
  165. oRange.select();
  166. }
  167. else
  168. // FF
  169. if (oText.setSelectionRange)
  170. {
  171. oText.setSelectionRange(start, length);
  172. }
  173. oText.focus();
  174. }
  175. /* funkcja uzupełniająca wpisane słowo kluczowe */
  176. function autocompleteKeyword()
  177. {
  178. //pobiera obikt słowa kluczowego
  179. var oKeyword = document.getElementById("keyword");
  180. // zeruje pozycję zaznaczonej podpowiedzi
  181. position=0;
  182. // usuwa zaznacznie ze wszystkich odpowiedzi
  183. deselectAll();
  184. // podświetla wybraną podpowiedź
  185. document.getElementById("tr0").className="highlightrow";
  186. // uzupełnia słowo kluczowe do podpowiedzi
  187. updateKeywordValue(document.getElementById("tr0"));
  188. // stosuje odpowiedni styl
  189. selectRange(oKeyword,httpRequestKeyword.length,oKeyword.value.length);
  190. // ustawia uzupełnione słowo jako wartość słowa kluczowego
  191. autocompletedKeyword=oKeyword.value;
  192. }
  193. /* funkcja wyświetlająca komunikat o błędzie */
  194. function displayError(message)
  195. {
  196. // wyświetla komunikat błędu - bardziej szczegółowy jeśli debugMode ma wartość true
  197. alert("Błąd podczas dostępu do serwera! " + (debugMode ? "\n" + message : ""));
  198. }
palonek
[JAVASCRIPT] pobierz, plaintext
  1.   var httpRequestKeywords = document.getElementById('keyword').value;
  2.   xmlHttpGetSuggestions.open("POST", getFunctionsUrl, true);
  3.   xmlHttpGetSuggestions.onreadystatechange = handleGettingSuggestions;
  4.   xmlHttpGetSuggestions.send("keywords="+encodeURIComponent(httpRequestKeywords));
[JAVASCRIPT] pobierz, plaintext




nie chodzi czasem o to ze GET jes kodowany ? 

linuxoida
Dzięki z podpowiedz, faktycznie tak było. teraz pojawił mi się kolejny problem, którego nie wiem jak totalnie rozgryść, ponieważ funkcja handleKeyUp(e) , sprawdza naciśniejcie klawiszy.
I teraz jest taki problem, że nie wiem jak obejść, poniewaz po wybraniu kodu klawisza return charcode 13, nie wiem w którym miejscu tego skryptu znajduje się element przeładowywujący na inna strone www. ja tego nie chce. A chce by po naciśnięciu klawisza return dana podpowiedz była umieszczona na input.

Dzięki za podpowiedz
erix
preventDefault?
linuxoida
tzn? bo nie czaję, JS nie jest mi bliskie przyznam
erix
Blokowanie domyślnej akcji przeglądarki. Google.
linuxoida
przyznam się mój błąd bo action w formularzu był zle zadeklarowany, dlatego mi przeladowywalo stronę, Teraz mam inne pytanie czy takie cos jest poprawne w js?
  1. for(i=0; i<=suggestions; i++)
  2. {
  3. document.getElementById("tr"+i).value = document.getElementById("keyword").value;
  4.  
  5. }

bo mi nie chce w inpucie zapisywac tej wartość
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.