Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]błąd z modyfikacją (wyszukiwarka) ajax
-sillee-
post
Post #1





Goście







Zamontowałem sobie tego moda: http://funkcje.net/nsc/2/1589/0/10/page.html
Niestety nie chce mi "szukać" fraz i wyskakuje mi w firebugu taki błąd:


  1. missing } after function body
  2. [Wstrzymuj na tym błędzie] /* Prototype JavaScript framework, ve...---------------*/Element.addMethods();
  3. prototype.js (wiersz 1)
  4. missing ; before statement
  5. [Wstrzymuj na tym błędzie] function searchSuggest(){;var str = es...yId('search_suggest').innerHTML = '';}

jak to naprawic?

adres www.mfportal.pl/suggest.html
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
ir3nicus
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 16.11.2010

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


"missing } after function body "

tzn że brakuje zamknięcia klamerki

sprawdź czy dobrze przekleiłeś

Go to the top of the page
+Quote Post
-sillee-
post
Post #3





Goście







sprawdzałem kilkukrotnie.
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

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


[JAVASCRIPT] pobierz, plaintext
  1. function searchSuggest(){; //<-na cholere tu średnik?
  2. var str = escape(document.getElementById('searchinput').value);
  3. var myAjax = new Ajax.Request('suggest.php',
  4. {
  5. method: 'get',
  6. parameters: "search="+str,
  7. onComplete: showResponse,
  8. onFailure: showAlert
  9. });
  10. }
  11.  
  12. function showResponse(text)
  13. {
  14. var search_suggest = document.getElementById("search_suggest");
  15. search_suggest.style.visibility = "visible";
  16. var ss = document.getElementById('search_suggest') //<- tutaj go zaś zabrakło
  17. ss.innerHTML = '';
  18. var str = text.responseText.split("\n");
  19. for(i=0; i < str.length - 1; i++)
  20. {
  21. var suggest = '<div onmouseover="java script:suggestOver(this);" ';
  22. suggest += 'onmouseout="java script:suggestOut(this);" ';
  23. suggest += 'onclick="java script:setSearch(this.innerHTML);" ';
  24. suggest += 'class="suggest_link">' + str[i] + '</div>';
  25. ss.innerHTML += suggest;
  26. }
  27. }
[JAVASCRIPT] pobierz, plaintext


Popraw i zobacz
Go to the top of the page
+Quote Post
Maze123987
post
Post #5





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


jeden z błędów, który pojawiał się w konsoli zniknął.

  1. missing ; before statement
  2. [Wstrzymuj na tym błędzie] function searchSuggest(){;var str = es...yId('search_suggest').innerHTML = '';}


Ten zaś jeszcze został i szukajka nadal nie reaguje:
  1. missing } after function body
  2. [Wstrzymuj na tym błędzie] /* Prototype JavaScript framework, ve...---------------*/Element.addMethods();
  3. prototype.js (wiersz 1)
Dodałem na końcu "}" i błąd zniknął.
Za to po wpisaniu jakiejkolwiek literki, po ktorej wpisaniu normalnie powinny wyskakiwać te hasła.
Konsola zwraca błąd

  1. Ajax is not defined
  2. [Wstrzymuj na tym błędzie] function searchSuggest(){var str = esc...yId('search_suggest').innerHTML = '';}
  3. suggest.js (wiersz 1)


A szukajka nie reaguje.

Ten post edytował baggy 7.10.2011, 08:15:57
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to pokaż kod. Wróżyć z fusów mamy?
To co pokazał kpt_lucek to jest cały kod? Nic więćej nie ma?
Go to the top of the page
+Quote Post
Maze123987
post
Post #7





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


  1. function searchSuggest(){
  2. var str = escape(document.getElementById('searchinput').value);
  3. var myAjax = new Ajax.Request(
  4. 'suggest.php',
  5. {
  6. method: 'get',
  7. parameters: "search="+str,
  8. onComplete: showResponse,
  9. onFailure: showAlert
  10. });
  11.  
  12. }
  13. function showResponse(text){
  14.  
  15. var search_suggest = document.getElementById("search_suggest");
  16. search_suggest.style.visibility = "visible";
  17. var ss = document.getElementById('search_suggest');
  18. ss.innerHTML = '';
  19. var str = text.responseText.split("\n");
  20. for(i=0; i < str.length - 1; i++)
  21. { var suggest = '<div onmouseover="java script:suggestOver(this);" ';
  22. suggest += 'onmouseout="java script:suggestOut(this);" ';
  23. suggest += 'onclick="java script:setSearch(this.innerHTML);" ';
  24. suggest += 'class="suggest_link">' + str[i] + '</div>';
  25. ss.innerHTML += suggest;
  26. }
  27.  
  28.  
  29.  
  30. }
  31. function showAlert(MyRequest) {
  32. alert("Operacja nie powiodła się");
  33. }
  34. function suggestOver(div_value) {
  35.  
  36. div_value.className = 'suggest_link_over';
  37. }
  38. function suggestOut(div_value) {
  39.  
  40. div_value.className = 'suggest_link';
  41. }
  42. function setSearch(value) {
  43. var search_suggest = document.getElementById("search_suggest");
  44. search_suggest.style.visibility = "hidden";
  45. document.getElementById('searchinput').value = value;
  46. document.getElementById('search_suggest').innerHTML = '';
  47. }

To jest suggest.js,
a w załączniku dodaje prototype.js
http://www.wrzuc.to/gL4b4SS.wt

@Edytowałem mój post wyżej.

Ten post edytował baggy 7.10.2011, 08:18:52
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




"Ajax is not defined"
Dołączyłes w ogóle prototype.js?
Go to the top of the page
+Quote Post
Maze123987
post
Post #9





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Tak:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>AJAX suggest</title>
  5. <meta name="keywords" content="" />
  6. <meta name="description" content="" />
  7. <link href="styl.css" rel="stylesheet" type="text/css" />
  8. <script type="text/javascript" src="js/prototype.js"></script>
  9. <script type="text/javascript" src="js/suggest.js"></script>
  10. </head>
  11. <form id="searchform" method="get" action="">
  12. <legend>Search</legend>
  13. <input id="searchinput" type="text" name="searchinput" value="" onkeyup="searchSuggest();" />
  14. <input id="searchsubmit" type="submit" value="Search" />
  15. <div id="search_suggest">
  16. </div>
  17. </form>
  18. </body>
  19. </html>

Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A wgrałeś do katalogu js plik prototype.js? Bo komunikat błędu sugeruje, ze prototype jednak się nie załadował.
Go to the top of the page
+Quote Post
Maze123987
post
Post #11





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Oczywiście, sprawdzałem to kilkukrotnie i nawet zmieniałem lokalizację pliku.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz to gdzieś wystawione, że sami sprawdzimy to online?
Go to the top of the page
+Quote Post
Maze123987
post
Post #13





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


W pierwszym poście podałem adres www.mfportal.pl/suggest.html
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No tak... nie dałeś jako linka i przeoczyłem (IMG:style_emoticons/default/smile.gif)

Wchodząc na stronę, firebug pokazuje, że nie widzi prototype...dziwne...
A weź wrzuć normalny prototype, beż zadnej minimalizacji
Go to the top of the page
+Quote Post
Maze123987
post
Post #15





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Niestety jest zbyt długi. Dodałem go wcześniej w załączniku (na wrzuc.to) czy jakoś tak.
http://www.wrzuc.to/gL4b4SS.wt

W konsoli google chrome widzę takie błędy


Kod
Uncaught SyntaxError: Unexpected end of input

Uncaught SyntaxError: <unknown message reserved_word>

GET http://127.0.0.1:10000/gui/pair?name=uT%20Toolbar%20Client&callback=storePairingKey&r=0.8545187534764409 401 (Unauthorized)

Uncaught ReferenceError: Ajax is not defined
searchSuggestsuggest
(anonymous function)
onkeyupsuggest


Ten post edytował baggy 7.10.2011, 08:45:55
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ty nie masz prototype wklejać nam na forum, tylko masz prototype.js w pełnej wersji wrzucic u siebie na serwer. Bo teraz na serwerze masz wersję zminimalizowaną.
Go to the top of the page
+Quote Post
Maze123987
post
Post #17





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 17.09.2009

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


Nie wiem czy o to chodziło, ale wgrałem tą bibliotekę.
https://ajax.googleapis.com/ajax/libs/proto....0/prototype.js

jakieś pomysły?

bump
----------------------------------------------------------------------------------------------------
ostatecznie zamontowałem sobie ten skrypt:

http://www.wrzuc.to/0Z8RudV.wt

Wszystko działa ( http://mfportal.pl/r06/suggest/ )
Niestety mam pewien problem. Sugerowane wyniki pobierane są z bazy i po wybraniu któregoś z nich przenosi do adresu http://www.php.net/manual/en/function. i na koncu dodaje wybraną nazwę. Jak zrobić, aby samemu dodawać do konkretnej nazwy adres url do którego ma przenosić po wybraniu jej?


  1. /* URL do strony PHP, która poda podpowiedzi dla danego słowa kluczowego*/
  2. var getFunctionsUrl = "suggest.php?keyword=";
  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;


To początek pliku suggest.js. Reszta plików w kodzie. Mógłby ktoś mi coś poradzić (IMG:style_emoticons/default/smile.gif) ?

Ten post edytował baggy 7.10.2011, 19:19:58
Go to the top of the page
+Quote Post

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: 23.08.2025 - 22:32