Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [advAjax] Ajax w Ajax'ie - problem
marcz
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 12.07.2003
Skąd: Białystok

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


Witam!

Piszę stronę, która ma wykorzystywać Ajax'a, wygląda ona mniej więcej tak:
- każdy link w menu strony wykorzystuje advAJAX.get(), aby do głównego div'a załadować odpowiedni plik php
- następnie w jednym z ładowanych plików php (w jedym z działów strony) chcę wykorzystać advAJAX.assign(), aby móc obsługiwać formularze za pomocą AJAXa (np. takie logowanie jak na stronie Anakina w przykładach)

Problem jest taki, że o ile pierwszy stopień zagłębienia Ajax'a działa (ładowanie działów klikając w linki menu), o tyle drugi stopień zagłębienia (formularz) już nie działa - dokładniej - przeglądarka jest przekierowywana do pliku z parametru action formularza, czyli tak jakby AJAX'a tam w ogóle nie było.

Oczywiście w przypadku nie ładowania formularza poprzez AJAX'a a wyświetlanie go "normalnie" wszystko działa jak należy - AJAX obsługuje formularz.

Nie mam pojęcia co jest nie tak, proszę o pomoc...

Udało mi się bardziej sprecyzować problem - funkcja adjAVAX.assign() podpinana pod dany formularz nie widzi go - document.getElementById() zwraca null. Specjalnie wywołuję assign() tuż po załadowaniu formularza, ale to i tak nic nie daje. Jak sobie z tym poradzić?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Skobi
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 1
Dołączył: 19.02.2004

Ostrzeżenie: (10%)
X----


ja robie coś takiego:

  1. var arrElement = new Array();
  2.  
  3. function ajaxform( nameID, submitvalue, ResponseId )
  4. {
  5. if ( document.getElementById(nameID).SUBMIT != "undefined" )
  6. {
  7. document.getElementById(nameID).SUBMIT.value = submitvalue;
  8. }
  9.  
  10. if( ResponseId == undefined )
  11. {
  12. ResponseId = 'contentAJAX';
  13. }
  14.  
  15. if ( arrElement[nameID] != 1 )
  16. {
  17. advAJAX.assign(document.getElementById(nameID), {
  18. onLoading : function() {
  19. contentHTML = document.getElementById( ResponseId ).innerHTML;
  20. document.getElementById( ResponseId ).innerHTML = document.getElementById( 'loadtemplate2' ).innerHTML;
  21. },
  22. onSuccess : function(obj) {
  23. document.getElementById( ResponseId ).innerHTML = obj.responseText;
  24. },
  25. onError : function(obj) {
  26. document.getElementById( ResponseId ).innerHTML = contentHTML;
  27. window.alert('blad');
  28. }
  29. });
  30. }
  31.  
  32. if (document.getElementById(nameID) != "null" )
  33. {
  34. arrElement[nameID] = 1;
  35. }
  36.  
  37. return false;
  38. }




a jezeli chodzi o przygotowanie formularza wyglada to tak:

  1. <? $sid = md5( uniqid( rand(), true ) ); ?>
  2. <form method="post" action="indexAjax.php" id="<?=$sid?>">
  3. <input type="hidden" name="act" value="post">
  4. <input type="hidden" name="SUBMIT" value="">
  5. <input type="submit" name="zapisz" value="Zapisz" onClick="ajaxform( '<?=$sid?>', 'ZAPISZ' );"/>
  6. </form>



u mnie takie coś działa bez problemu
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: 23.12.2025 - 20:55