Avatar billede n-emy Nybegynder
10. juni 2009 - 15:27 Der er 2 kommentarer og
1 løsning

HTML fra javascript-output (DOM eller innerHTML)

Hejsa eksperter

Jeg har de seneste dage arbejdet med et script der automatisk skal opdatere indholdet på en side uden at man behøver at reloade siden. Jeg er helt ny indenfor AJAX og fik lavet et script fra en venlig sjæl i dette spørgsmål: http://www.eksperten.dk/spm/876527

Nu skal jeg have sat sidste touch på. Jeg vil have outputtet til at afvikle de html-koder der eventuelt er i udskriften. Jeg har forsøgt mig lidt med noget innerHTML men indtil nu er det kun lykkedes mig at lave html koder imellem udskrifterne. Jeg har læst lidt på W3Schools turtorial omkring DOM og har søgt på det her på eksperten, men fatter ikke så meget af det endnu, så har brug for et skub i den rigtige retning =)

Scriptet ser således ud:
<script language="javascript" type="text/javascript">

function ajaxFunction(){
    var ajaxRequest;
   
        try {
            ajaxRequest = new XMLHttpRequest();
            }
        catch (e) {
                try {
                    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                catch (e) {
                        try{
                            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                        catch (e){
                            alert("Your browser broke!");
                    return false;
                        }
                }
        }
            ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                var text = ajaxRequest.responseText;
                var src=document.getElementById("nyheder");
                src.firstChild.nodeValue = text;
                }
            }
    ajaxRequest.open("POST", "comments.php?id=<?print"$_GET[id]";?>", true);
    ajaxRequest.send(null);
}

function refreshNews(){
src = document.getElementById('nyheder');
src.firstChild.nodeValue=ajaxFunction();
setInterval("ajaxFunction()",5000);
}
</script>

<div id="nyheder">Start</div>

comments.php:
<?
include("../../include/dataopkobling.php");

$kommentarnr = 0;
$s_kommentar = mysql_query("SELECT * FROM kommentar WHERE typeid = '$_GET[id]' AND type = 'nyhed' ORDER BY id");
WHILE($kommentar = mysql_fetch_array($s_kommentar)) {
print"<a name=\"d$kommentar[id]\"></a>";
$dktid = $kommentar[tid2];
include("$rod/include/tidskonvertering.php");
$sbruger1 = mysql_query("SELECT * FROM brugersystem WHERE id = '$kommentar[userid]'");
$bruger1 = mysql_fetch_array($sbruger1);
$writer = $bruger1[id];
$tekst = $kommentar[kommentar];
include("$rod/include/tekstud.php");
$tekst = preg_replace('/\[url=https?:\/\/([^]"]+?)\](.*?)\[\/url\]/i', '<a href="http://$1">$2</a>', $tekst);
$kommentaren = nl2br($tekst);
$kommentaren = stripslashes($kommentaren);
print"$kommentaren<br /><br />";
}
?>
Avatar billede softspot Forsker
10. juni 2009 - 15:43 #1
Jeg synes du begår en fejl ved at overse tjaz' råd (i den tråd du henviser til), nemlig at bruge jQuery. jQuery hjælper dig utrolig meget med en masse ting, dels dit aktuelle problem, men også i fremtiden, hvis du vil arbejde videre med AJAX og effekter på din side i øvrigt...
Avatar billede n-emy Nybegynder
10. juni 2009 - 16:46 #2
Fik det selv til at virke:)

Softspot:
Lige pt. skal jeg kun bruge den funktion, men hvis jeg en dag skal videre vil jeg da også overveje jQuery =)
Avatar billede majbom Novice
11. juni 2009 - 14:37 #3
-> #2 - hvad var løsningen så?
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