FAQ |
Kalender |
2007-04-09, 17:05 | #1 | ||
|
|||
Medlem
|
Jag vill kunna ha flera olika div:ar som uppdaterar sig på bestämd tid och hämtar te.x en varsin rss-feed edyl.
Problemet är att jag lyckas bara få en av div:arna att hämta informationen, att få 2 eller 3 som hämtar samma går men jag kan inte byta källa. ag lyckas bara få ett ajax script att fungera åt gången, när jag gör på detta sätt. KOD: Kod:
function ajax() { if(navigator.appName == "Microsoft Internet Explorer"){ xml = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xml = new XMLHttpRequest(); } xml.onreadystatechange = Response; xml.open('GET','tid.php',true); xml.send(null); setTimeout ("ajax()", 5000); } function Response() { if (xml.readyState == 4 && xml.status == 200) { document.getElementById('live').innerHTML = xml.responseText; } } funkar kanon såhär långt, och div:en gör precis vad tid.php säger att den ska göra osv. Men hur gör jag om jag vill att en annan div med id=live2 ska göra vad som står i tex. tid2.php? tacksam för svar |
||
Svara med citat |
2007-04-09, 17:50 | #2 | ||
|
|||
Banned
|
Skapa flera XML objekt...
|
||
Svara med citat |
2007-04-09, 18:24 | #3 | ||
|
|||
Medlem
|
Citat:
Tackar! Problemet är bara att jag inte vet hur du menar. Lust att förklara lite mer ingående med ett exempel? Tack för ditt snabba svar! |
||
Svara med citat |
2007-04-09, 19:03 | #4 | ||
|
|||
Klarade millennium-buggen
|
antingen kopierar du javascriptfunktionerna eller så gör du om befintlig så du kan använda samma funktion till att utföra båda kommandon.
Kod:
function ajax(pageurl,divid) { if(navigator.appName == "Microsoft Internet Explorer"){ xml = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xml = new XMLHttpRequest(); } xml.onreadystatechange = Response(divid); xml.open('GET',pageurl,true); xml.send(null); //setTimeout ("ajax()", 5000); } function Response(divId) { if (xml.readyState == 4 && xml.status == 200) { document.getElementById(divId).innerHTML = xml.responseText; } } setTimeout ("ajax('tid.php','live1'); ajax('tid2.php','live2')", 5000); |
||
Svara med citat |
2007-04-09, 21:34 | #5 | ||
|
|||
Medlem
|
Jätte snällt jag förstår ungefär scriptet men javascript är inte mitt område direkt och för att jag inte ska prova mig fram hela kvällen så undrar jag:
Kod:
<body onload="ajax();"> samma med: Kod:
<div id="live"><div> ber om ursäkt för mig okunskap och om detta ska vara jätte basic men försöker lära mig, gillar det det gör! |
||
Svara med citat |
2007-04-09, 22:23 | #6 | |||
|
||||
Klarade millennium-buggen
|
Citat:
Kod:
<body onload="ajax('http://www.rssurl1.com','liv...41;;"> Kod:
<div id="live1"><div> <div id="live2"><div> <div id="live3"><div> |
|||
Svara med citat |
2007-04-09, 22:54 | #7 | ||
|
|||
Medlem
|
Har testat det mesta nu och det funkar inte ens med 1 källa till en div.
Här är koden jag använder nu som inte funkar. Kod:
<head> <script type="text/javascript"> function ajax(pageurl,divid) { if(navigator.appName == "Microsoft Internet Explorer"){ xml = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xml = new XMLHttpRequest(); } xml.onreadystatechange = Response(divid); xml.open('GET',pageurl,true); xml.send(null); } function Response(divId) { if (xml.readyState == 4 && xml.status == 200) { document.getElementById(divId).innerHTML = xml.responseText; } } setTimeout ("ajax('tid1.php','live1')", 5000); </script> </head> <body onload="ajax('tid.php','live1');"> <div id="live1"></div> </body></html> |
||
Svara med citat |
2007-04-10, 04:01 | #8 | ||
|
|||
Medlem
|
Testade faktiskt det inlägget som från början gav mig minst, men efter att jag lärt mig lite javascript till så förstod jag, iallafall lite mer.
Dock blev lösningen väldigt osmidig och ful, men fungerar iallafall. Någon som kan visa hur man kan trimma min nybörjar-kod? Kod:
<script type="text/javascript"> var div = 0; var myDiv = 0; function ajax(url,div) { myDiv = div; if(navigator.appName == "Microsoft Internet Explorer"){ xml = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xml = new XMLHttpRequest(); } xml.onreadystatechange = Response; xml.open("GET", url,true); xml.send(null); setTimeout ("ajax('tid.php','ett')", 5000); } function Response() { if (xml.readyState == 4 && xml.status == 200) { document.getElementById(myDiv).innerHTML = xml.responseText; } } </script> <script type="text/javascript"> var ddiv = 0; var mmyDiv = 0; function aajax(uurl,ddiv) { mmyDiv = ddiv; if(navigator.appName == "Microsoft Internet Explorer"){ xxml = new ActiveXObject("Microsoft.XMLHTTP"); }else{ xxml = new XMLHttpRequest(); } xxml.onreadystatechange = RResponse; xxml.open("GET", uurl,true); xxml.send(null); setTimeout ("aajax('tid2.php','två')", 5000); } function RResponse() { if (xxml.readyState == 4 && xxml.status == 200) { document.getElementById(mmyDiv).innerHTML = xxml.responseText; } } </script> </head> <body onload="ajax('tid.php','ett'); aajax('tid2.php','två');"> <div id="ett">laddar</div> <div id="två">laddar</div> </body> </html> |
||
Svara med citat |
2007-04-10, 11:16 | #9 | ||
|
|||
Klarade millennium-buggen
|
Kod:
setTimeout ("aajax('tid2.php','två')", 5000); Men om det fungerar är det bra, trots fullösningen. Det skall gå att slå ihop dem, jag hade visserligen inte testat mitt exempel så det kan ha funnits något litet fel. Det finns verktyg som validerar javascriptet - då kan man se på vilken rad det är fel och rätta det. |
||
Svara med citat |
Svara |
|
|