Avatar billede TiHs Nybegynder
03. oktober 2007 - 10:47 Der er 10 kommentarer og
1 løsning

updatere divs automatisk uden hele siden

Hej eksperter,

Hvordan får jeg en bestemt div til at opdatere automatisk hver 5 eller 10 sekund på min side uden at opdatere hele siden ?
Avatar billede hells Nybegynder
03. oktober 2007 - 11:55 #1
Du bruger XMLHttpRequest til at opdatere dens indhold. Tag et kig herpå: http://w3schools.com/ajax/default.asp
Avatar billede TiHs Nybegynder
03. oktober 2007 - 12:12 #2
Hmm... lidt svær at genneskue. Syntes det ser ud til at jeg kun kan opdatere ved at gøre noget aktivt i et form feldt ....
Avatar billede hells Nybegynder
03. oktober 2007 - 12:31 #3
var req = new XMLHttpRequest();
setInterval("opdater()",5000);
function opdater(){
  req.onreadystatechange = function(){
    if(req.readyState==4){
      if(req.status==200){
        document.getElementById("divets id").innerHTML = req.responseText;
      }
    }
  }
  req.send(null);
  req.open("GET",DINurl,true);
}

utestet, men noget i den stil.
Avatar billede thesurfer Nybegynder
03. oktober 2007 - 12:34 #4
Man skal passe lidt på, med at følge guides på w3schools.com og html.dk. De sider er kendt for at indeholde ukorrekte informationer.

Når man bruge AJAX, skal man f.eks. bruge POST i stedet for GET, for at undgå problemer med hukommelsen i Microsoft Internet Explorer.

Dernæst skal det man får retur, være i XML format (X'et i "AJAX"), og ikke HTML format.

Til sidst må man ikke bruger innerHTML, hvilket W3Schools gør, da innerHTML ikke er i nogen standard, og er derfor ugyldigt. Man skal i stedet oprette noderne, og tilføje dem til træstrukturen (dokumentet).


Jeg har desværre ikke tid til at kigge på det, da jeg er på vej ud af døren.
Det kan være at olebole kommer forbi.. han kan højst sandsynligt hjælpe.. :-)
Avatar billede TiHs Nybegynder
03. oktober 2007 - 12:54 #5
Lyder godt.
Jeg havde nu troet jeg skulle bruge noget ala:

<script type="text/javascript">

var mycontent=new Array()
mycontent[0]=' <img src="http://javascriptkit.com/m1.gif"> Learn about JavaScript and get free scripts at <a href="http://javascriptkit.com">JavaScript Kit!</a>'
mycontent[1]=' <img src="http://javascriptkit.com/m2.gif"> Visit <a href="http://dynamicdrive.com">Dynamic Drive</a> for the best DHTML scripts and components on the web!'
mycontent[2]=' <img src="http://javascriptkit.com/m3.gif"> The <a href="http://www.cssdrive.com/">CSS Drive</a> CSS gallery and examples.'
mycontent[3]=' <img src="http://javascriptkit.com/m4.gif"> CodingForums.com- Web coding and development forums'

var i=0

function altercontent(){
if (document.all)
dcontent.innerHTML=mycontent[i];
i=(i==mycontent.length-1)? 0 : i+1
setTimeout("altercontent()", 3000)
}

window.onload=altercontent

</script>

Det jeg vil hente ind i min div på siden er noget php fra en tabel
i min database som kan ændre sig når folk opdaterer informationer.

jeg har følgende div:

<div id="laes">
<?php
include("../dbconnect.php");
$getchat = mysql_query("select * from chat ORDER BY date DESC");
while($r=mysql_fetch_array($getchat)){
extract($r);
echo("<br><b>$navn<p class=\"style1\">$date</p>$tekst</b><br>------------------------------------------<br>");

}
php?>
</div>

det er denne div jeg gerne vil have opdateret hver 5 sekund ....
Avatar billede olebole Juniormester
03. oktober 2007 - 13:06 #6
<ole>

Du kan ikke bruge PHP på klienten - det er jo et serversprog. Derfor er der ikke nogen fidus i at hente PHP-kode med AJAX.
Du kan i stedet lade serveren afvikle PHP-koden og smide resultatet retur. Under ingen omstændigheder bør du dog bruge innerHTML. Den property har aldrig været valid - giver store problemer - og hører til i WWW's yngre stenalder.

Derudover er det ikke for at være nedladende, men har du behov for at stille spørgsmål på Eksperten, er du slet ikke klar til at skrive en chat i AJAX. Det er _meget_ kompliceret og kræver, du er absolut haj i JavaScript og DOM

/mvh
</bole>
Avatar billede TiHs Nybegynder
03. oktober 2007 - 13:48 #7
Men hvordan får jeg den så til at hente resultat fra tabellen hver 5 sekund uden at opdatere siden med php ?
Avatar billede TiHs Nybegynder
03. oktober 2007 - 13:56 #8
Kan jeg bruge den java script jeg angav og så få den til at kalde min lille php getchat istedet for img src=
Avatar billede olebole Juniormester
03. oktober 2007 - 14:00 #9
Til det bruger man AJAX - men det er du slet ikke klar til. Den lille snas PHP, du har skrevet, tyder faktisk på, du heller ikke har de nødvendige PHP-kompetencer til at lave en chat.

I udgangspunktet er sprog som PHP og ASP komplet uegnede til at skrive chats i. Gør man det alligevel, kræver det enormt godt styr på programmering ... _virkelig_ godt styr!

Det JavaScript, du skrev i spørgsmålet, hører til i WWW's barndom - så nej, det vil jeg absolut ikke anbefale dig at bruge. For mig at se, ville du bruge energien langt bedre, hvis du lavede noget, der passer lidt bedre til dit niveau. Så vil du muligvis efterhånden lære så meget, at du også kan skrive en chat  :)
Avatar billede TiHs Nybegynder
03. oktober 2007 - 14:03 #10
Jamen du har ret olebole... det er mere en side til hurtig kommunikation ... ikke så meget en chat .. jeg har bare kaldt det chat ... det er en kode jeg genbruger fra min side i forvejen hvor jeg har en form for tavle/gæstebog som en holdleder og en træner opdaterer informationer i ... troede bare jeg kunne gøre det på denne måde ...
Avatar billede TiHs Nybegynder
18. oktober 2007 - 14:28 #11
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester