Avatar billede sw_red_6 Nybegynder
02. oktober 2006 - 11:36 Der er 10 kommentarer og
1 løsning

overføre data til vindue åbnet med javascript

Jeg har en række arrays som jeg vil have printet, men hvordan får jeg overført dem til en anden side som åbnes med javascript?
Avatar billede Slettet bruger
02. oktober 2006 - 13:12 #1
Denne function åbner dokumentet window.htm og sætter innerHTML på elementet med id = 'element_id' til 'test'.

function openwindow(){
    var wind = window.open('window.htm');
    wind.document.getElementById('element_id').innerHTML = 'test';
}

Har jeg forstået dit spm korrekt?

/1.
Avatar billede sw_red_6 Nybegynder
02. oktober 2006 - 13:24 #2
måske...
Jeg har 3 arrays med en masse data fra en mysql database som jeg skal godt vil overføre til en side som er sat op til udskrift, i stedet for at skulle til at lede databasen igennem 1 gang til, hvilket tager mindst 4 sekunder (som sagt, en masse data).
Avatar billede Slettet bruger
02. oktober 2006 - 14:11 #3
er det som javascript array og hvordan ser din udskriftsside ud?
Avatar billede sw_red_6 Nybegynder
02. oktober 2006 - 15:03 #4
Det er arrays fra PHP og det er også PHP der bruges til at udskrive de arrays
Avatar billede Slettet bruger
02. oktober 2006 - 15:40 #5
Der er 2 måder at gøre det på.. du kan lave javascript udskrive dine arrays (ved at udskrive php arrays til javascript array).

function openwindow(){
    var arr = new Array ("a","b","c","d","e");
    var wind = window.open('window.htm');
    var output = "";
    for(t=0;t<arr.length;t++)
    {
        output += "<tr><td>" + arr[t] + "</td></tr>";
    }
    wind.document.getElementById('element_id').innerHTML = "<table>" + output + "</table>";
}

Eller du kan lade php lave hele formateringen og derefter udskrive som i min første kommentar.
Avatar billede sw_red_6 Nybegynder
02. oktober 2006 - 15:43 #6
ville det være muligt at lave med wind.document.write?
Avatar billede Slettet bruger
02. oktober 2006 - 16:03 #7
Yes.. så åbner du bare en blank side (about:blank) og skriver i den.

function openwindow(){
    var arr = new Array ("a","b","c","d","e");
    var wind = window.open('about:blank');
    var output = "";
    for(t=0;t<arr.length;t++)
    {
        output += "<tr><td>" + arr[t] + "</td></tr>";
    }
    wind.document.write("<html><head><title>ny side</title></head><body><table>" + output + "</table></body></html>");
}

/1.
Avatar billede sw_red_6 Nybegynder
02. oktober 2006 - 16:08 #8
hm den løsning er nok ikke den bedste. Det er den samme side der bliver kaldt, bare med visse ting "fjernet".
Jeg tænkte også på om det på nogen måde kunne lade sig gøre med en form?
Avatar billede Slettet bruger
02. oktober 2006 - 20:15 #9
Du kan bruge denne funktion til at fjerne alle elementer med attributten print sat til false. På denne måde behøver du ikke åbne et nyt vindue, men kan toggle mellem printdesign og webdesign.

Jeg har kun testet i Firefox og IE, så ved ikke, hvordan andre browsere håndterer funktionen.

Den kaldes sådan her:

togglePrint('none'); //<- skjuler alle elementer med print='false'
togglePrint(''); //<- viser alle elementer med print='false'

<p print='false'>Dette bliver skjult
<p>dette bliver vist
<p print='true'>Dette bliver også vist

<script type='text/javascript'>
    var uA = navigator.userAgent.toLowerCase();
    if(uA.indexOf('opera') != -1){
        var browser = "opera";
    }else if(uA.indexOf('msie') != -1){
        var browser = "ie";
    }else if(uA.indexOf('firefox') != -1){
        var browser = "ff";
    }else{
        var browser = "other";
    }
    function togglePrint(display_val){
        var allElements = document.getElementsByTagName("*");
        for(obj in allElements){
            var print = (browser == "ie") ? allElements[obj].print : allElements[obj].getAttribute('print');
            if(print == 'false'){
                allElements[obj].style.display = display_val;
            }
        }
    }
</script>

/1
Avatar billede sw_red_6 Nybegynder
21. december 2006 - 11:46 #10
vi valgte at løse det på en anden måde.
vi brugte en iframe som blev kaldt med en side hvor den hentede al data en gang til..
kom med et svar hvis du vil have point
Avatar billede Slettet bruger
21. december 2006 - 14:24 #11
Nej tak.. Behold pointne hvis i brugte en anden løsning..

/1..
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