Avatar billede gadebarnet Nybegynder
21. januar 2004 - 15:43 Der er 16 kommentarer og
1 løsning

print af bestemt div

Hvordan printer jeg et bestemt div ud ved tryk på knap.. Og hvad hvis der er flere divs men det kun er div  1,2,3 og 8 der skal printes ud?
Avatar billede mm12010 Nybegynder
21. januar 2004 - 15:51 #1
function printPage(){
    if(document.all&&navigator.userAgent.indexOf("Opera")==-1){
        h=400;
        w=600;
        winTop=(screen.height - h - 100) / 2;
        winLeft=(screen.width - w) / 2;
        features="height="+h+",width="+w+",top="+winTop+",left="+winLeft+",toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,titlebar=no";
        strTitel=document.title;
        divs=new Array("1","2","3","8");
        var strContent="";
        for(i=0;i<divs.length;i++){
            strContent+=document.getElementById(i).innerHTML;
        }
        var    doc="<html>\n";
        doc+="<head>\n";
        doc+="<title>Print Side\133"+strTitel+"\135<\57title>\n";
        doc+="<\57head>\n";
        doc+="<body>\n";
        doc+=strContent+"\n";
        doc+="<\57body>\n";
        doc+="<\57html>\n";
        newWin=window.open("","printWin",features);
        newWin.document.write(doc);
        newWin.document.close();
        newWin.focus();
        newWin.print();
        newWin.close();
        }
    else{
        window.print();
        }
    }
Avatar billede gadebarnet Nybegynder
21. januar 2004 - 15:53 #2
Ikke helt forstået... Har lige nogle flere ting...

hvis nu der er 5 checkbox's

1,2,3,4,5

den skal kun printe de div's ud der er hav i... Hvordan gøres det???
Avatar billede mm12010 Nybegynder
21. januar 2004 - 15:57 #3
må jeg se koden til din side?
Avatar billede gadebarnet Nybegynder
21. januar 2004 - 16:01 #4
Der er ikke noget kode endnu... Jeg laver det først, når jeg ved om man kan det jeg vil...

Med lad os gå ud fra at jeg har:


<input type="checkbox" value="1" name="1">
<input type="checkbox" value="2" name="2">
<input type="checkbox" value="3" name="3">
<input type="checkbox" value="4" name="4">
<input type="checkbox" value="5" name="5">


og så:


<div id=a>
alt a
</div>
<div id=b>
alt b
</div>
<div id=c>
alt c
</div>
<div id=d>
alt d
</div>
<div id=e>
alt e
</div>


og så hvis man vælger 1.3.5 så skal de div's printes ud...
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:05 #5
mm12010> hvad med noget?:

var el = document.FORMNAVN.elements;
var divs = "";

for (i=0; i < el.length; 1++) {
  if ( (el[i].Type = "checkbox") && (el[i].checked == true) divs += "," + el[i].name
}

Eller noget den den stil..
Avatar billede gadebarnet Nybegynder
21. januar 2004 - 16:07 #6
Jeg er absolut IKKE java haj, så hvis du lige hakker det der ud i pap... :)
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:07 #7
linien divs += "," + el[i].name
burde nok være: divs += el[i].name + ","

Og så skal man bare fjerne det sidste tegn, som er ","..
divs = divs.substring(0, divs.length - 1) // er ikke helt sikker på koden her..
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:15 #8
mm12010> Et lille eksempel..
Din kode skal så også indsættes.. efter "//resten af din kode her":

<form name="FORMNAVN">
<input type="checkbox" value="1" name="1">
<input type="checkbox" value="2" name="2">
<input type="checkbox" value="3" name="3">
<input type="checkbox" value="4" name="4">
<input type="checkbox" value="5" name="5">
<br>
<input type="button" onclick="doprint()" value="doprint">
</form>

<script type="text/JavaScript">
function doprint()
{

var el = document.FORMNAVN.elements;
var divs = "";

for (i=0; i < el.length; i++) {
  if ( (el[i].Type = "checkbox") && (el[i].checked == true) ) divs += el[i].name + ",";
}

divs = divs.substring(0, divs.length - 1) // er ikke helt sikker på koden her..
//alert("divs: " + divs);

divs = divs.split(",");

// viser os de valgte.. fjernes efter test:
for (i=0; i < divs.length; i++) {
  alert(divs[i]);
}

//resten af din kode her

}
</script>
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:22 #9
Komplet eksempel-script.. testet og virker i Internet Explorer 6:

<div id="1">Dette er div nr. 1</div>
<div id="2">Dette er div nr. 2</div>
<div id="3">Dette er div nr. 3</div>
<div id="4">Dette er div nr. 4</div>
<div id="5">Dette er div nr. 5</div>

<form name="FORMNAVN">
<input type="checkbox" value="1" name="1">
<input type="checkbox" value="2" name="2">
<input type="checkbox" value="3" name="3" checked>
<input type="checkbox" value="4" name="4" checked>
<input type="checkbox" value="5" name="5">
<br>
<input type="button" onclick="printPage()" value="doprint">
</form>

<script type="text/JavaScript">
function printPage(){
    if(document.all&&navigator.userAgent.indexOf("Opera")==-1){
        h=400;
        w=600;
        winTop=(screen.height - h - 100) / 2;
        winLeft=(screen.width - w) / 2;
        features="height="+h+",width="+w+",top="+winTop+",left="+winLeft+",toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,titlebar=no";
        strTitel=document.title;

var el = document.FORMNAVN.elements;
var divs = "";

for (i=0; i < el.length; i++) {
  if ( (el[i].Type = "checkbox") && (el[i].checked == true) ) divs += el[i].name + ",";
}

divs = divs.substring(0, divs.length - 1)
divs = divs.split(",");

        var strContent="";
        for(i=0;i<divs.length;i++){
            strContent+=document.getElementById(i + 1).innerHTML + "<br><br>";
        }
        var    doc="<html>\n";
        doc+="<head>\n";
        doc+="<title>Print Side\133"+strTitel+"\135<\57title>\n";
        doc+="<\57head>\n";
        doc+="<body>\n";
        doc+=strContent+"\n";
        doc+="<\57body>\n";
        doc+="<\57html>\n";
        newWin=window.open("","printWin",features);
        newWin.document.write(doc);
        newWin.document.close();
        newWin.focus();
        newWin.print();
        newWin.close();
        }
    else{
        window.print();
        }
    }


</script>
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:24 #10
hmm.. hvad skal \133 (\133 = "[]") til for?: doc+="<title>Print Side\133"
Avatar billede mm12010 Nybegynder
21. januar 2004 - 16:32 #11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>print af bestemt div</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function printPage(){
    if(document.all&&navigator.userAgent.indexOf("Opera")==-1){
        h=400;
        w=600;
        winTop=(screen.height - h - 100) / 2;
        winLeft=(screen.width - w) / 2;
        features="height="+h+",width="+w+",top="+winTop+",left="+winLeft+",toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,titlebar=no";
        strTitel=document.title;
        divs=document.forms[0].elements;
        var strContent="";
        for(i=0;i<divs.length;i++){
            strContent+=(divs[i].checked)?document.getElementById("div"+divs[i].value).innerHTML:"";
            }
        var doc="<html>\n";
        doc+="<head>\n";
        doc+="<title>Print Side\133"+strTitel+"\135<\57title>\n";
        doc+="<\57head>\n";
        doc+="<body>\n";
        doc+=strContent+"\n";
        doc+="<\57body>\n";
        doc+="<\57html>\n";
        newWin=window.open("","printWin",features);
        newWin.document.write(doc);
        newWin.document.close();
        newWin.focus();
        //newWin.print();
        //newWin.close();
        }
    else{
        window.print();
        }
    }
</script>
</head>
<body>
<form action="" method="get">
<input type="checkbox" value="1" name="1">
<input type="checkbox" value="2" name="2">
<input type="checkbox" value="3" name="3">
<input type="checkbox" value="4" name="4">
<input type="checkbox" value="5" name="5">
<input name="Print" type="button" value="Print" onClick="printPage();">
</form>
<div id="div1">
alt a
</div>
<div id="div2">
alt b
</div>
<div id="div3">
alt c
</div>
<div id="div4">
alt d
</div>
<div id="div5">
alt e
</div>
</body>
</html>
Avatar billede mm12010 Nybegynder
21. januar 2004 - 16:33 #12
ikke noget særligt :o)
Avatar billede mm12010 Nybegynder
21. januar 2004 - 16:41 #13
jeg smutter nu - men er tilbage senere i aften, hvis der skulle være mere...
Avatar billede thesurfer Nybegynder
21. januar 2004 - 16:48 #14
mht: divs=document.forms[0].elements;

Det er altid bedst at bruge form navn, end at bruge forms[0]. Hvis man senere hen, indsætter en ny form før den, skal man hen og rette 0 til 1.

Man kan sige at det er det samme med document.FORMNAVN.elements;.. hvis du skifter navnet på din form, skal du også skifte FORMNAVN..

Men jeg plejer altid at bruge form navn..
Avatar billede mm12010 Nybegynder
02. februar 2004 - 11:37 #15
gadebarnet >> hvad finder du ud af?
Avatar billede gadebarnet Nybegynder
24. februar 2004 - 13:15 #16
kom lige med et svar
Avatar billede mm12010 Nybegynder
24. februar 2004 - 13:20 #17
svar :o)
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