Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mintAjax oraz funkcja round
Forum PHP.pl > Forum > XML, AJAX > AJAX
crybaby
Witam 
mam taki oto kawałek kodu : 
 
Kod
<BODY onLoad="javascript:process(1); javascript:round(); return true;">
 <div id="kontener" class="kontener">
 <div id="flash_naglowek"></div>
 <div id="flash_menu"></div>
              <div id="glowny_div" class="glowny_div">
 </div>     
    <div id="stopka"><img src='kids.jpg'></img></div>
   </div>


oraz funkcja process() ; 

 
Kod
function process(level)
{
  if (xmlHttp)
  {
    try
    {
     
      display("Ładowanie XML ...");   
      if(level==1) {

          xmlHttp.open("GET", 'friendly.php?action=aktualnosci', true);
          xmlHttp.onreadystatechange = handleGettingNews;
        }
      else {
          xmlHttp.open("GET", 'friendly.php?action='+level, true);
          xmlHttp.onreadystatechange = handleGettingNews;
        }

          xmlHttp.send(null);
          Round();
    }
    catch(e)
    {  
      displayError(e.toString());
    }
  }
}


oraz funkcja zaokrąglenia round 

 
Kod
function Round() {
    mint.fx.Round("glowny_div", "all", "large");
}



jak widać chciałbym zaookrąglić głowny_div , problem jest taki iż robi mi zaokrąglenia tylko przed odpowiedzią serwera , po wykonaniu xmlHttp.open , zaokrąglenia wogole jakby nie było :/ dlaczego tak się dzieje i jakie jest na to lekarstwo :/
lord_t
Zacznę od pytania:
Korzystasz z biblioteki mintAjax; to czemu nie wykorzystasz podstawowej je funkcjonalności tylko sam implementujesz działanie ajaxu?

Moje przypuszczenie (zakładam, że podany kod jest skrócony):
Wysyłasz żądanie (i ono ruszyło i "trwa").
W po wysłaniu żądania zaokrąglasz sobie diva "glowny_div".
Po odebraniu treści którą chciałeś, tworzysz jeszcze raz diva "glowny_div" ale on już wtedy jest inny niż ten któremu zaokrągliłeś rogi.


Jeśli jest jak powyżej to skorzystaj z mintAjaxa: zdefiniuj zaokrąglanie w funkcji OnSuccess() obiektu Request.
crybaby
super, zastosowałem się do rady i powstała funkcja : 

Kod
function process(level)
{
  if (xmlHttp)
  {
    try
    {
     
      display("Ładowanie XML ...");   
      if(level==1) {

     var req = mint.Request();
          req.OnSuccess = function() {
        Round();
        }
         req.Send('friendly.php?action=aktualnosci', "glowny_div");
        
        }
      else {
          var req = mint.Request();
          req.OnSuccess = function() {
        Round();
        }
         req.Send('friendly.php?action='+level, "glowny_div");
        }
 
    }
    catch(e)
    {  
      displayError(e.toString());
    }
  }
}



idz moim oczom ukazały się zaokrąglone rogi diva smile.gif moja radość była krótka gdyż kazdorazowe późniejsze wywołanie funkcji process(); , poprzez klik na hiperłączu ,  jakoś dziwnie kasuje styl mojego diva :/ 

problemem jest funkcja round :/ 
lord_t
Spróbuj może zamienić OnSuccess na OnLoaded, a jeśli nie pomoże to zapodaj link do wersji online.
crybaby
z onLoaded jest gorzej tongue.gif , link http://www.sp113.edu.pl/testy
lord_t
No to dziwnie to coś działa, muszę przyznać, ale mam pomysł: zrób zaokrąglenie dla "glowny_div" w onload. a zawartość którą chcesz wczytywać wrzuć do tego diva który będzie w środku zaokrąglenia:)
crybaby
tez o tym myslałem , niezły pomysł , narazie musze zaprzyjaźnić sie z mintAjax , ale poćwiczymy , zobaczymy smile.gif

dzieki za pomoc 

// kilkkanaście minut później 



no to zadanie domowe odrobione smile.gif twój pomysł okazał się jedynym działającym rozwiązaniem , może mało elegancki ale działa i to jest naważniejsze smile.gif dzięki raz jeszcze 




temat do zamknięcia
lord_t
Czemu mało elegancki? Zamiast zaokrąglać n razy, robisz to tylko raz. To optymalizacja:)
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.