Avatar billede phpbegynder2004 Nybegynder
03. december 2006 - 18:55 Der er 8 kommentarer og
1 løsning

Load data til andet end textarea

Hej,

I forbindelse med en chat loader jeg indholdet af en tekstfil til et textarea:

<textarea id=\"chatwindow\" rows=\"30\" cols=\"80\" readonly></textarea>

Det er dog irriterende, at jeg ikke kan formattere teksten i textarea'et, så er det muligt, at loade teksten ind i noget andet? Har forsøgt mig med <div>, men det hjalp ikke :(

<div id=\"chatwindow\"></div> (Måske et hjælpeløst forsøg, men jeg er på bar bund)
Avatar billede the_magician Nybegynder
03. december 2006 - 19:03 #1
Hvordan loader du teksten ind i text-areaet?
Avatar billede phpbegynder2004 Nybegynder
03. december 2006 - 19:08 #2
Med noget Ajax script. Vil du se?
Avatar billede thesurfer Nybegynder
03. december 2006 - 21:04 #3
Det ville være en god ide, at vise koden..

Den bruger garanteret noget i stil med: document.getElementById("chatwindow").value = '...'

Måske står der ".text" i stedet for ".value"..

Hvis du så bruger en div, skal du bruge: document.getElementById("chatwindow").innerHTML = '...';
Avatar billede phpbegynder2004 Nybegynder
04. december 2006 - 21:08 #4
Her er der lidt kode:

<script type=\"text/javascript\">
/* Writing Ajax Requests */
var http_request=false;var http_request2=false;var intUpdate;function ajax_request(url){http_request=false;if(window.XMLHttpRequest){http_request=new XMLHttpRequest();if(http_request.overrideMimeType){http_request.overrideMimeType('text/xml');}}else if(window.ActiveXObject){try{http_request=new ActiveXObject(\"Msxml2.XMLHTTP\");}catch(e){try{http_request=new ActiveXObject(\"Microsoft.XMLHTTP\");}catch(e){}}}
if(!http_request){alert('Fejl! Der kan ikke oprettes en XMLHTTP instance');return false;}
http_request.onreadystatechange=alertContents;http_request.open('GET',url,true);http_request.send(null);}
function alertContents(){if(http_request.readyState==4){if(http_request.status==200){rec_response(http_request.responseText);}else{}}}

/* Reading Ajax Requests */
function ajax_request2(url){http_request2=false;if(window.XMLHttpRequest){http_request2=new XMLHttpRequest();if(http_request2.overrideMimeType){http_request2.overrideMimeType('text/xml');}}else if(window.ActiveXObject){try{http_request2=new ActiveXObject(\"Msxml2.XMLHTTP\");}catch(e){try{http_request2=new ActiveXObject(\"Microsoft.XMLHTTP\");}catch(e){}}}
if(!http_request2){alert('Fejl! Der kan ikke oprettes en XMLHTTP instance');return false;}
http_request2.onreadystatechange=alertContents2;http_request2.open('GET',url,true);http_request2.send(null);}
function alertContents2(){if(http_request2.readyState==4){if(http_request2.status==200){rec_chatcontent(http_request2.responseText);}else{}}}

/* Chat Stuff */
waittime=2000;
intUpdate=window.setTimeout(\"read_cont()\", waittime);
chatwindow.value = \"Forbinder...\";

    function display_msg(msg1) {
        /* Fill Textarea with the Content */
        chatwindow.value = msg1;
    }

    function write_msg(msg1) {
        ajax_request(\"chat/w.php?m=\" + escape(msg1));
    }
     
    function submit_msg() {
        /* Send My Message */
        write_msg(chatmsg.value);
        chatmsg.value=\"\";
    }
         
    function rec_response(str1) {
        /* Response From w.php */
    }

    function rec_chatcontent(cont1) {
        if (cont1 != \"\") {
            out1 = \"\";
            /* Display Last Message First */
            while (cont1.indexOf(\"\\n\") > -1) {
                out1 = cont1.substr(0, cont1.indexOf(\"\\n\")) + \"\\n\" + out1;
                cont1 = cont1.substr(cont1.indexOf(\"\\n\") + 1);
            }
            out1 = unescape(out1);
            if (chatwindow.value != out1) { display_msg(out1); }
            intUpdate=window.setTimeout(\"read_cont()\", waittime);
        }     
    }

    function read_cont() {
        /* Prevent Buffering by using ?x=timeinms */
            zeit = new Date();
          ms = (zeit.getHours() * 24 * 60 * 1000) + (zeit.getMinutes() * 60 * 1000) + (zeit.getSeconds() * 1000) + zeit.getMilliseconds();
        ajax_request2(\"chat/chat.txt?x=\" + ms);
    }
    function keyup(arg1) {    if (arg1 == 13) {    submit_msg(); } }
</script>";
Avatar billede phpbegynder2004 Nybegynder
04. december 2006 - 21:12 #5
Jeg kan se, at jeg så skal ændre denne: chatwindow.value til chatwindows.innerHTML ?


Går ud fra at denne er den "vigtige" (det er vel den der spytter teksten ud):

    function display_msg(msg1) {
        /* Fill Textarea with the Content */
        chatwindow.value = msg1;
    }

Hvis jeg nu gerne vil have lavet et array ud af teksten. Fx. Delt den op, hvor der er @.

Har forsøgt mig lidt:

var temp = new Array();
temp = msg1.split('@');

document.write("<table border=1><tr>");
document.write("<td>"+temp[0]+"</td>"); //Brugernavn
document.write("<td>"+temp[1]+"</td>"); //tidspunkt
document.write("<td>"+temp[2]+"</td>"); //Besked
document.write("</tr></table>");
</script>

Men jeg ved ikke helt hvordan det skal sættes ind i resten af koden...
Avatar billede thesurfer Nybegynder
05. december 2006 - 15:13 #6
Hvis du vil puttet tabellen ind i div-boksen, skal du ikke bruge document.write, men putte strengen i en variabel, som du så putter i div-boksen via .innerHTML..

Eksempel:

kode = "";
kode += "<table border=1><tr>";
kode += "td>" + temp[0] + "</td>"); // Brugernavn
// osv...

document.getElementById("chatwindow").innerHTML = kode;
Avatar billede thesurfer Nybegynder
05. december 2006 - 15:14 #7
Jeg kom til at skrive "td>" i stedet for "<td>".. men du kan sikkert godt finde ud af det.. :-)

Jeg ved ikke om man bliver nødt til at tilføje tabellen, via body'ens noder..

Hvis det her ikke virker, skal man det andet...
Avatar billede phpbegynder2004 Nybegynder
07. december 2006 - 17:24 #8
Tak for hjælpen thesurfer!
Læg et svar.
Avatar billede thesurfer Nybegynder
07. december 2006 - 19:40 #9
Det gør jeg 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