Xajax lub Ajax opóźnienie wykonania zapytania mysql

2011-06-30 11:21
Romek98
0

Siemka! Chciałbym opóźnić wykonanie zapytania mysql o jakies 5-10 sekund! Mam pytanko jak można by to zrobic czego szukać konkretnie na necie przejrzałem już o Xajaxie i Ajaxie ale czegos takiego nie znalazłem prosze o pomoc

edytowany 1x, ostatnio: madmike, 2016-12-13 18:26

Pozostało 580 znaków

2011-06-30 11:26
0

Niemozliwe, abys nie znalazl nieczego o ajax'ie.
Poza tym, niepodales jezyka.
Php, tak?


Pozostało 580 znaków

2011-06-30 11:31
Romek98
0

Nie no znalazłem o Ajaxie ale jak wykonać w nim zapytanie mysql_query to nie wiem
Tak pisze normalną stonkę w php i chciałbym dołożyć wykonanie operacji po jakimś czasie bez przeładowania strony

Pozostało 580 znaków

2011-06-30 11:39
0

To nie dziala tak latwo, jak Ci sie wydaje.
Uzywayjac jQuery mozna zrobic to tak:

function DoIt()
{
 $.get("http://mojastrona.pl/zapytanie.php", function(data)
 {
  $("moj_div").html(data)
 });
}

$(document).ready(function()
{
 setInterval(5000, DoIt)
});

Np.takie cos.
W pliku php moze byc:

<?php
include("main.php")
ConnectToDB()
$Zapytanie = MySQL_Query("...")
print $Zapytanie
?>

Oczywiscie - mozna je jakos sformatowac, pododawac jakies bajery, jednak ogolnie, to mniej-wiecej tak wyglada.
Ale to wszystko znalazlbys w pierwszym-lepszym tutorialu...

PS: Jezeli beda bledy, to przepraszam, ale nie mam czasu sprawdzac kodu ;)


edytowany 1x, ostatnio: Patryk27, 2011-06-30 11:39

Pozostało 580 znaków

2011-06-30 11:56
Romek98
0

Nie ma jakiejś prostszej metody? Zrobiłem sobie już ładny odliczacz i tylko zostało mi opóźnienie :) myślałem że zwykłym sleepem się da to załatwić

Pozostało 580 znaków

2011-06-30 12:15
0

Przeczytaj jakies kursy o jQuery, ogolnie o Ajax'ie, a poznasz swoja odpowiedz.

PS: Jezeli kod ma sie wykonac 1 raz, a nie w nieskonczonosc (tak jak u mnie), to zamien setInterval na setTimeout


edytowany 1x, ostatnio: Patryk27, 2011-06-30 12:16

Pozostało 580 znaków

2011-06-30 12:42
Romek98
0
<script type="text/javascript">
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","podstrona.php?zmienna="+str,true);
xmlhttp.send();
}
</script>

mam coś takiegotylko mam pytanie czy muszę coś zaimportować zeby to działało w sekcji head? uruchamiam to w body onload a jak mozna by to opóźnić?

Pozostało 580 znaków

2011-06-30 13:07
0

1.Trzeba było użyć jQuery, ale skoro chcesz się tak męczyć z tym...
2.Nic nie musisz dodawać do kodu (jeszcze).
3:
setTimeout(milisekundy, funkcja) -> pojedyncze wywołanie kodu po 'milisekundy' (przerwa, wywołanie funkcji)
setInterval(milisekundy, funkcja) -> ciągłe wywoływanie kodu z przerwą 'milisekundy' (wywołanie funkcji, przerwa, wywołanie funkcji, przerwa, itd.)

Czyli w twoim przypadku będzie to tak:

<script>
(tutaj twoja funkcja)
setTimeout(5000, "showUser(tutaj nie wiem, co wpisać)")
</script>

1 sekunda = 1000 milisekund

PS: Tego twojego kodu nie sprawdzałem, ponieważ tak 'bezpośrednio'(jeżeli można to tak nazwać) Ajax'a nie kojarzę, zawsze korzystam z frameworków ;)


edytowany 1x, ostatnio: Patryk27, 2011-06-30 13:08

Pozostało 580 znaków

2011-06-30 13:12
Romek98
0

Teraz mam taki problemmam tam ten swój plik ktory się ma wykonać po 5 sekundach jak wywołuję go z przeglądarki to wszystko działa a jak z tej podstrony co bym chciał to już nie za bardzo getem pobieram wszystko normalnie przekazuję ale nic to nie daje

Pozostało 580 znaków

2011-06-30 13:23
0

Pokaż, jaki kod masz aktualnie.


Pozostało 580 znaków

2011-06-30 13:25
Romek98
0

Bo wywołuję to tak?

<body onload="showUser('.$_GET['user'].');"> Sry że tak truję

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0