Mój problem jest następujący. Chcę główną stronę tworzyć w momencie jej otwarcia przez użytkownika na podstawie danych składowanych w bazie sql. Funkcja wywołująca plik php do obsługi sql wywoływana jest przez advAJAX. Wywoływana jest przez window.onLoad. Jak wiadomo obsługa sql chwilę trwa, więc chciałem w tym czasie użytkownikowi pokazać, że trwa ładowanie. I tu następuje problem. Kod mam następujący (oczywiście bardzo uproszony - zostawiłem tylko ważne dla problemu elementy):
  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript">
  3. window.onLoad=wyswietl();
  4.  
  5. function wyswietl()
  6. {
  7. advAJAX.post({
  8. url:"handle_sql.php",
  9.  
  10. onLoading : function(obj) {document.getElementById("info").innerHTML = "Trwa ładowanie danych";},
  11. onSuccess : function(obj) {document.getElementById("wynik").innerHTML = obj.responseText;},
  12. onError : function(obj) {document.getElementById("info").innerHTML = "Błąd:" + obj.status;}
  13. });
  14. }
  15. </head>
  16. <div id="info">Tu pojawi się informacja o postępie.</div>
  17. <div id="wynik">Wynik wygenerowany przez handle_sql.php</div>
  18. </body>
  19. </html>


plik PHP handle_sql.php (W sumie w tym momencie nieistotny, ale co tam):
  1. <?php
  2. die("Hello");
  3. ?>


Gdy wykonywane jest
  1. onLoading : function(obj) {document.getElementById("info").innerHTML = "Trwa ładowanie danych";}
przeglądarka zwraca mi błąd, że "document.getElementById("info") has no properties", czyli tak jakby div o id info nie istniał. A istnieje, bo przy ładowaniu widać napis w nim zawarty, a poza tym funkcja która to obsługuje wywoływana jest na window.onLoad zatem zgodnie z tym co piszą na mozzila.developer (The load event fires at the end of the document loading process. At this point, all of the objects in the document are in the DOM, and all the images and sub-frames have finished loading.), czyli cała strona jest załadowana i wszystkie obiekty na niej istnieją. Dodam, że jeśli ten getElementById zamienię na document.write("Trwa ładowanie danych");, wszystko jest ok - napis pojawia się kiedy trzeba. Tylko, że pojawia się nie tam, gdzie bym chciał.
Ogólnie - jak zrobić, aby napis pojawiał się w trakcie ładowania w tym określonym przezemnie divie?

EDIT:
Błąd tkwił w wywołaniu funkcji. Powinno być:
  1. window.onload=wyswietl;