Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JS w nagłówku strony, a ładowanie pliku do DIV
Forum PHP.pl > Forum > XML, AJAX > AJAX
beny2k
Witam serdecznie...

Mam pewien mały problem...
Znalazłem w miarę fajny skrypt na autouzupełnianie w polu input. Działa on w przypadku gdy strona jest ładowana wraz z tym formularzem. Natomiast w przypadku, gdy za pomocą XMLHttpRequest ładuje plik php do div'a, w którym to pliku php znajduje się owy formularz to już nie działa. Domyślam się że może być to problem ze skryptem JS który jest w nagłówku strony, a który po załadowaniu całej strony działa natomiast gdy do div'a wrzucam poprzez XMLHttpRequest plik php z tym samym formularzem już nie... Poniżej dołączam kod...

index.php
  1. <html lang="pl">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3.  
  4. <link rel="stylesheet" href="style.css" type="text/css">
  5. <link rel="stylesheet" href="jquery-autocomplete/jquery.autocomplete.css" type="text/css" />
  6. <script type="text/javascript" src="jsfunc.js"></script>
  7. <script type="text/javascript" src="jquery-autocomplete/lib/jquery.js"></script>
  8. <script type="text/javascript" src="jquery-autocomplete/lib/jquery.bgiframe.min.js"></script>
  9. <script type="text/javascript" src="jquery-autocomplete/jquery.autocomplete.js"></script>
  10.  
  11. //owy skrypt który w moim mniemaniu nie działa...
  12. <script type="text/javascript">
  13. $(document).ready(
  14. function(){
  15. $("input#urzadzenia").autocomplete("jq_urzadzenia.php", {
  16. width: 200,
  17. max: 10,
  18. selectFirst: false,
  19. cacheLength: 1
  20. });
  21. }
  22. );
  23. </script>
  24. </head>
  25.  
  26. <div id="naglowek"></div>
  27.  
  28. <div id="menu">
  29. <div id="submenu">
  30. <div style="margin-left: 15px; padding: 4px;"><a style="color: black;" href="#" onclick="getMsg('crm.php', 'kontener')">CRM</A></div>
  31. </div>
  32. </div>
  33.  
  34. //Tutaj do tego diva wrzucany jest plik php z formularzem
  35. <div id="kontener"></div>


Poniżej plik z formularzem:
  1. <form action="" method="post" name="ankieta">
  2. <tr>
  3. <th colspan="2"> Formularz z podpowiedziami</th>
  4. </tr>
  5. <tr>
  6. <td class="r">Urządzenia</td>
  7. <td class="l"> <input type="text" name="urzadzenia" id="urzadzenia" onblur="$('input#urzadzenia').search();"></td>
  8. </tr>
  9. <tr>
  10. <th>&nbsp;</th>
  11. <th> <input type="submit" value="Akceptuj" class="submit"> </th>
  12. </tr>
  13. </table>
  14. </form>


JS z nawigacją znajdujący się w pliku jsfunc.js
  1. var ObiektXMLHttp = false;
  2. if (window.XMLHttpRequest) {
  3. ObiektXMLHttp = new XMLHttpRequest();
  4. } else if (window.ActiveXObject) {
  5. ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
  6. }
  7. function getMsg(src, content)
  8. {
  9. if(ObiektXMLHttp)
  10. {
  11. ObiektXMLHttp.open("POST", src);
  12. ObiektXMLHttp.onreadystatechange = function()
  13. {
  14. if (ObiektXMLHttp.readyState == 4)
  15. {document.getElementById(content).innerHTML = ObiektXMLHttp.responseText;}
  16. }
  17. ObiektXMLHttp.send(null);
  18. }
  19. }


I do tego jest oczywiście plik jq_urzadzenia.php który wyciąga odpowiednie dane z bazy pomijam go z racji tego iż nie powinien on w żaden sposób przeszkadzać...

Proszę o podpowiedź co mogę zrobić by ten skrypt JS zadziałał w nagłówku... oraz proszę o wyrozumiałość bo nie jestem ekspertem w tym temacie smile.gif

Pozdrawiam
p10
kiedy wywolujesz:
$("input#urzadzenia").autocomplete( ... )

jquery przeszukuje drzewo dom w poszukiwaniu tego inputa i go nie znajduje. ty go dołączasz do drzewa dopiero później - w tym miejscu:
document.getElementById(content).innerHTML = ObiektXMLHttp.responseText;

wniosek:
uruchom autocompliter po dodaniu formularza do dokumentu.
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.