Chat - autorefresh

Programovacie jazyky, rady, poradňa...
petkio
Amateur
Amateur
Príspevky: 10
Registrovaný: 10 mar 2009, 16:37

Chat - autorefresh

Príspevok od používateľa petkio »

Caute borci .. robim chat a potreboval by som poradit.. spravy ukladam do DB .. a kazda starsia ako 40 sa zmaze..
no a problem je ze ako mam kua riesit aby sa mi refreshovala len cast stranky ktora je oddelena <div> om.??

KOD:
...
<body>
- formular - do ktoreho zadavam spravy
<div id="autorefresh">
- prispevky (a toto potrebujem aby sa mi refreshovalo napr. po 7 sec)
</div>
</body>
...

za kazdu radu velmi pekne dakujem..
awtt
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1234
Registrovaný: 01 nov 2006, 19:37
Bydlisko: San Francisco
Kontaktovať používateľa:

Príspevok od používateľa awtt »

iframe
petkio
Amateur
Amateur
Príspevky: 10
Registrovaný: 10 mar 2009, 16:37

Príspevok od používateľa petkio »

hmm a neni na to nejake ine sikovnejsie riesenie..?? .. bolo by to validne?? ..nechcem mat na stranke frame.. neda sa jednoducho refreshovat <div>???
"J"
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1019
Registrovaný: 13 mar 2007, 17:10

Príspevok od používateľa "J" »

Mozno Ajaxom.
Ak potrebujes <iframe>, prepni stranku do Transitional DTD.
petkio
Amateur
Amateur
Príspevky: 10
Registrovaný: 10 mar 2009, 16:37

Príspevok od používateľa petkio »

ak by to bolo pomocou iframe tak by som musel skor nastavit doctype na frameset .. ak by som chcel aby to bolo validne.. teda aspon podla mna :)

.. ale ja by som chcel zachovat stranku aka je.. a refreshovat iba to v divu..
..jj pocul som ze pomocou ajaxu sa to da.. ale AKOOO?? pls nakopnite ma :cry:
"J"
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1019
Registrovaný: 13 mar 2007, 17:10

Príspevok od používateľa "J" »

<IFRAME> mozes pouzit aj v Transitional.

Stacilo by, keby si v druhom subore generoval obsah toho <div>u, dalej si spravil JS funkciu, ktora by pomocou Ajaxu vyberala obsah suboru a menila innerHTML toho <div>u. Tu fciu by si volal kazdych X sekund pomocou setTimeout.

Velmi dobry tutorial je tu: http://www.w3schools.com/ajax/default.asp
petkio
Amateur
Amateur
Príspevky: 10
Registrovaný: 10 mar 2009, 16:37

Príspevok od používateľa petkio »

takze skusal som neco.. a prisiel som na...

spravil som si druhy subor (ifra.php).. ako si kazal :) .., v ktorom vypisujem prispevky z DB

..v tom povodnom subore som len doplnil namiesto tych vypisov prispevkov

<iframe src="ifra.php" width="100%" height=500 frameborder=0>
Vas prehliadac nepodporuje ram!!!
</iframe>

a este som do toho suboru (ifra.php) hodil obycajny refresh celej stranky
<meta http-equiv="refresh" content="10" />
.. a bum ono sa refreshuje iba tato cast kodu.. takze problem vyrieseny...ALEEEEE

... chcel by som to este inak riesit.. bez IFRAME ... hmm da sa to niejako inac???
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Veď ti už napísali, že ďalšia možnosť je použiť Ajax.
Dawn
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 354
Registrovaný: 27 dec 2005, 0:44
Bydlisko: www.themapledays.com
Kontaktovať používateľa:

Príspevok od používateľa Dawn »

flash :smt047
petkio
Amateur
Amateur
Príspevky: 10
Registrovaný: 10 mar 2009, 16:37

Príspevok od používateľa petkio »

konečne som si cez víkend našiel čas na ten ajax.. tak tu to je v ajaxe

KÓD: (zoznamka.php)
...

Kód: Vybrať všetko

<head>

<script type="text/javascript">
 <!--
  //Create a boolean variable to check for a valid Internet Explorer instance.
  var xmlhttp = false;
  //Check if we are using IE.
  try {
    //If the Javascript version is greater than 5.
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } 
    catch (e) {
      //If not, then use the older active x object.
      try {
        //If we are using Internet Explorer.
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch (E) {
        //Else we must be using a non-IE browser.
        xmlhttp = false;
      }
    }
  //If we are using a non-IE browser, create a javascript instance of the object.
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  
  function makerequest(serverPage, objID) {
    var obj = document.getElementById(objID);
    serverPage = "sklo.php";
    xmlhttp.open("GET", serverPage);
    xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        obj.innerHTML = xmlhttp.responseText;
      }
    }
    xmlhttp.send(null);
    setTimeout("makerequest('sklo.php', 'nove')", 3000);
  }
  //-->
</script>
<link rel="stylesheet" type="text/css" href="a.css" />
</head>
<body>
- formular - do ktoreho zadavam spravy
<div id="nove"></div>
</body>
...
(sklo.php)
- vyber z databázy posledných 20 sprav

..........
- funguje aj v IE6 ...
create by net
Ďakujem :) (aj by som vám zvýšil karmu, keby som mohol)
Napísať odpoveď