Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] Problem z setTimeout
Forum PHP.pl > Forum > XML, AJAX
SN@JPER^
Witam,

mam taką funkcję PHP, która jest wywoływana przez AJAX...


  1. function formularz()
  2. {
  3.  global $userdata;
  4.  
  5.  /*WYCIĄGAMY ID USERA */
  6.  $sql = "SELECT id FROM users WHERE login='".$userdata['login']."'";
  7.  $query = @mysql_query($sql);
  8.  $fetch = @mysql_fetch_array($query);
  9.  
  10.  $id_user = htmlspecialchars(stripslashes($fetch['id']));
  11.  /*KONIEC WYCIĄGAMY ID USERA */
  12.  
  13.  /*SPRAWDZAMY ILOŚĆ KUPONÓW "AKTYWNYCH USERA" */
  14.  $sql_ac = "SELECT * FROM kupon WHERE id_user='".$id_user."' and ok='2'";
  15.  $query_ac = @mysql_query($sql_ac);
  16.  $rows_ac = @mysql_num_rows($query_ac);
  17.  /*KONIEC SPRAWDZAMY ILOŚĆ KUPONÓW "AKTYWNYCH USERA" */
  18.  
  19.  
  20.  /*SPRAWDZAMY ILOŚĆ KUPONÓW "AKTYWNYCH USERA" */
  21.  $sql_mac = "SELECT * FROM kupon_matchs WHERE id_user='".$id_user."'";
  22.  $query_mac = @mysql_query($sql_ac);
  23.  $rows_mac = @mysql_num_rows($query_ac);
  24.  /*KONIEC SPRAWDZAMY ILOŚĆ KUPONÓW "AKTYWNYCH USERA" */
  25.  
  26.        if(!isset($userdata['login']))
  27.        {
  28.          echo 'Aby brać udział w typerze musisz być zalogowany!';
  29.        }
  30.        else
  31.        {
  32.        
  33.                if($rows_ac<1)
  34.                {
  35.                  echo 'Twój kupon zakładu jest pusty. Kliknij na kurs i dodaj go do swojego kuponu.';
  36.                }
  37.                
  38.                elseif($rows_mac<1)
  39.                {
  40.                  $sql = "DELETE FROM kupon WHERE id_user='".$id_user."'";
  41.                }
  42.                
  43.                else
  44.                {
  45.                
  46.                $sql = "SELECT * FROM kupon WHERE id_user='".$id_user."' and ok='2'";
  47.                $query = @mysql_query($sql);
  48.                
  49.                
  50.              ?>
  51.              
  52.                      Witaj <?=$login?><br />
  53.                      Masz <?=$pkt?> pkt! <br />
  54.                      
  55.                      <div id="matchs">
  56.                      
  57.                      <?php
  58.                      while($fetch = @mysql_fetch_array($query))
  59.                      {
  60.                        $id_kupon = htmlspecialchars(stripslashes($fetch['id']));
  61.                        
  62.                        $sql_mat = "SELECT * FROM kupon_matchs WHERE id_kupon='".$id_kupon."' and id_user='".$id_user."'";
  63.                        $query_mat = @mysql_query($sql_mat);
  64.                        $rows_mat = @mysql_num_rows($query_mat);
  65.                        
  66.                        for($i=0; $i<$rows_mat; $i++)
  67.                        {
  68.                        
  69.                        $fetch_mat = @mysql_fetch_array($query_mat);
  70.                            
  71.                                $id = htmlspecialchars(stripslashes($fetch_mat['id']));
  72.                                $id_kupon = htmlspecialchars(stripslashes($fetch_mat['id_kupon']));
  73.                                $id_user = htmlspecialchars(stripslashes($fetch_mat['id_user']));
  74.                                $id_gospodarz = htmlspecialchars(stripslashes($fetch_mat['id_gospodarz']));
  75.                                $id_gosc = htmlspecialchars(stripslashes($fetch_mat['id_gosc']));
  76.                                $kurs_x = htmlspecialchars(stripslashes($fetch_mat['kurs_x']));
  77.                                $kurs_gospodarz = htmlspecialchars(stripslashes($fetch_mat['kurs_gospodarz']));
  78.                                $kurs_gosc = htmlspecialchars(stripslashes($fetch_mat['kurs_gosc']));
  79.                                $rodzaj = htmlspecialchars(stripslashes($fetch_mat['rodzaj']));
  80.                                $typ = htmlspecialchars(stripslashes($fetch_mat['typ']));
  81.                                $wynik = htmlspecialchars(stripslashes($fetch_mat['wynik']));
  82.                            
  83.                            
  84.                            //********NAZWA KLUBÓW*********
  85.                            //WYCIAGAMY NAZWE KLUBU WEDŁUG ID - GOSPODARZ
  86.                            $sql_club_1 = "SELECT name FROM teams WHERE id=".$id_gospodarz."";
  87.                            $query_club_1 = mysql_query($sql_club_1);
  88.                            $fetch_club_1 = mysql_fetch_array($query_club_1);
  89.                            
  90.                            //WYCIAGAMY NAZWE KLUBU WEDŁUG ID - GOŚĆ
  91.                            $sql_club_2 = "SELECT name FROM teams WHERE id=".$id_gosc."";
  92.                            $query_club_2 = mysql_query($sql_club_2);
  93.                            $fetch_club_2 = mysql_fetch_array($query_club_2);
  94.                            //********END NAZWA KLUBÓW*********
  95.                            $gospodarz = $fetch_club_1['name'];
  96.                            $gosc = $fetch_club_2['name'];
  97.                            
  98.                            ?>
  99.                      <span style='font-size: 9px;'><?=$gospodarz?> - <?=$gosc?>:<?=$typ?></span>  <img style="cursor: pointer;" onclick="usun_mecz('<?=$id?>');" src='cancel.png' border='0' alt=''><br />
  100.                      
  101.                      <?php
  102.                      }
  103.                      }
  104.                      ?>
  105.                      
  106.                      
  107.                      </div>
  108.                      
  109.                      
  110.                      Stawka: <input type="text" name="" size="3" /><br/><br />
  111.                      
  112.                      <input type="submit" value="Zatwierdź">
  113.                
  114.            <?php
  115.                 }
  116.         }
  117.                
  118. }


potrzebuje aby ta funkcje byla ciągle aktywna, na bierząco sprawdzala dane... itp.

Jednakże gdy użyłem setTimeout(); zamula calego serwa...:

  1. function formularz()
  2. {
  3. ajax_method.onreadystatechange = function(){
  4. if (ajax_method.readyState == 4 && ajax_method.status == 200) {
  5.  
  6. synchronizuj(ajax_method.responseText);
  7.  
  8. }
  9. };
  10. ajax_method.open("GET", 'function_typer.php?co=formularz');
  11. ajax_method.send(null);
  12.  
  13. setTimeout("formularz()", 1000);
  14.  
  15. }


Jest jakiś inny sposób coś a'la setTimeout - zeby nie mulilo tak ostro serwa?
marcio
jest setInterval() ale w ogole jak dajesz co 1sec to normalne ze muli server daj co 5 sec
SN@JPER^
Ok, dzięki za odpowiedź... tylko czemu podczas tych odświeżen formularz jakby się sklonował....?:



a I da się, zeby jak klikne w zdarzenie np_dodaj_mecz(); (JS) to funkcja wlasnie odpowiadająca za formularz odświezyla sie tylko raz?
marcio
Klonuje sie chyba dlatego bo masz wyswietlanie tego w petli.
SN@JPER^
Calego formularza nie pętlowalem tylko dane wewnątrz formularza... zreszta raz klonuje, raz nie...

a jak z tym:

Cytat
a I da się, zeby jak klikne w zdarzenie np_dodaj_mecz(); (JS) to funkcja wlasnie odpowiadająca za formularz odświezyla sie tylko raz?
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.