# Fenster öffnen, Inhalt drucken, Fenster schließen



## dermacz (1. Juli 2004)

Hi
ich suche ein Script das folgendes tut:

1. Beim Klick auf eine Link soll ein script aufgerufen werden (geht ja mit OnClick="javascript:fensterneu" )

2. Dieses Script sollte ein neues Fenster öffnen, darin eine Seite laden, diese drucken und das Fenster danach gleich wieder schließen.

Ich weiß das man mit dieser Funktion druckt
javascript:window.print()
Ich denke mir das ich in dem neuen Window einfach ne HTML einbaue mit

<body OnLoad="javascript:window.print()">
Hier dann der Text
</body>

Sollte das nicht gehen verbessert mich bitte...Ich brauhe alos nur noch die Befehlsabfolge "auf-linkzuminhalt-zu"

PS: Ich hab eine andere Seite bei der ch weitergeletitet werden will die seiht so aus:

```
<?php
if(file_exists("config.ini")) include "config.ini";
else die ("Fehler: install.php muss erneut ausgeführt werden");
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" />\n";    
@mysql_connect($dbhost, $dblogin, $dbpass) OR die(mysql_error());    
mysql_select_db($db) OR die(mysql_error());
$sql = "INSERT INTO `ehemalige` (`ID`, `name`, `vorname`, `tel`, `straße`, `nummer`, `plz`, `ort`, `jahrgang`) VALUES ('', '".$_GET['name']."', '".$_GET['vorname']."', '".$_GET['tel']."', '".$_GET['strasse']."', '".$_GET['nummer']."', '".$_GET['plz']."', '".$_GET['ort']."', '".$_GET['jahr']."'); ";
mysql_query($sql) OR die(mysql_error());?>
<html>
<head>
<meta http-equiv="refresh" content="3"; URL="index.htm">
</head>
<body>
<p align="center"><font color="65CB33">Eintrag erfolgreich. Sie werden weitergeleitet.</font></p>';
</body>
</html>';
```

Hier macht er jedoch immer nur den SQL-Bfehel neu und leitet nicht weiter


----------



## Tobias Menzel (1. Juli 2004)

Hi,


```
mywin=window.open("URL.htm","Fenstername",Flags);
mywin.focus();
mywin.print();
mywin.close();
```

...würde ich jetzt spontan sagen.

Korrigiert mich, wenn ich irre!

Gruß


----------



## dermacz (1. Juli 2004)

Also sry aber das geht nicht...ich setze das so ein
Das ganze is inm einem PHP-Doc

```
echo '
<script type="text/javascript">
<!--
function neuwind(Name) {
   mywin=window.open("druck.php?name=Name","Printen",Flags); 
   mywin.focus(); 
   mywin.print(); 
   mywin.close();
	
}
//-->
</script>
';
echo '<a onClick="neuwind('.$name.')" href="andere seite die sich im selben fenster öffnen soll"';
```

Der Parameter name ist in Get-Wert für eine SQL-Query in dem neuen Fenster

Der Code des neuen Fensters sieht so aus..der soll gedruckt werden.


```
<?php
if(file_exists("../config.ini")) include "../config.ini" ;
else die("Fehler! Neu installieren");
@mysql_connect($dbhost, $dblogin, $dbpass) OR die(mysql_error());    
mysql_select_db($db) OR die(mysql_error());
$_GET['name'] = $name;
$sql = "SELECT * FROM ehemalige WHERE name=".$name.";";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)) {
if($row = mysql_fetch_assoc($result)) {
echo "<table>
<tr><td>&nbsp;</td></tr>
<tr>
	<td><b>Name: </b></font></td>
	<td><b>$row[vorname] $row[name]</b></font></td>
</tr>
<tr><td>&nbsp;</td></tr>

<tr>
	<td><b>Jahrgang: </b></font></td>
	<td><b>$row[jahrgang]</b></font></td>
</tr>
<tr><td>&nbsp;</td></tr>

<tr>
	<td valign=\"top\"><b>Adresse: </b></font></td>
	<td><b>$row[straße] $row[nummer]<br>$row[plz] $row[ort]</b></font></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
	<td><b>Telefon: </b></font>:</td>
	<td><b>$row[tel]</b></font></td>
</tr>
</table>";

}
}
else echo $name." existiert nicht."

?>
```

PS: das im Lin sogennate neue Fenster ist eigentlich das alte, dazu soll eben das "ganz" neue Fenster zum drucken geöffnet werden


----------



## Tobias Menzel (1. Juli 2004)

Also, bei mir gehts...

...wobei ich das JS jetzt mal zu Testzwecken direkt in die Datei geschrieben habe,
statt es von PHP hineinschreiben zu lassen.

Sonst würde ich mal in den Quelltext der generierten Seite hineinschauen, ob
PHP alles richtig eingefügt hat.

Eines ist mir noch aufgefallen:
	
	
	



```
mywin=window.open("druck.php?name=Name","Printen",Flags);
```
Das [Name] muss aus den Anführungsstrichen raus; es soll ja die Variable übergeben werden und nicht der String "Name".

Gruß

P.S.: Natürlich wird die Seite nicht direkt gedruckt, sondern es öffnet sich das Druckfenster (wäre ja noch schöner, wenn JavaScript direkten Zugriff auf den Drucker hätte... ).


----------



## dermacz (1. Juli 2004)

SRY
aber ich bekomm das nicht zum laufen...
kannst du es bitte mal versuchen...Kann mir nurnoch vorstellen das ich es falsch verlinkt habe....


```
<a onClick="neuwind(Test)" href="executeinsert.php?name='.$name.'&vorname='.$vorname.'&tel='.$tel.'&strasse='.$strasse.'&nummer='.$nummer.'&plz='.$plz.'&ort='.$ort.'&jahr='.$jahr.'">
```

Das ist mein Link bei dem es aufgerufen werden soll...

Und wo soll ich jetzt das Script reinschreiben


----------



## Tobias Menzel (1. Juli 2004)

Wart mal eben ein paar Minuten ... ich versuch das gleich mal in PHP und packe
das Ergebnis in dieses Posting - bis gleich!


----------



## dermacz (1. Juli 2004)

Also...es kommt folgender Fehler um ins Detail zu gehen...
Nachdem mywin=window.open(
Erwartet er einen Bezeichner obwohl ich da nen Ziel und danach nen namen einegeben hab(beides als Strings)


----------



## Tobias Menzel (1. Juli 2004)

OK, ich hänge noch mal einen Eintrag an (um das letzte Wort zu haben ).

Ich habe es mal eben local mit Apache getestet.
Mit folgendem Script hatte ich Erfolg:
	
	
	



```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>NEUWIN TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
echo ' 
<script language="JavaScript" type="text/javascript">
<!-- 
function neuwind(wname,myvar) { 
   mywin=window.open("druck.php?myvar="+myvar,wname); 
   mywin.focus(); 
   mywin.print(); 
   mywin.close(); 
     
} 
//--> 
</script> 
'?>
<body> 
<?php
$name="'Neuer_Name'";
$myvar="'Variablen'";
echo '<a onClick="neuwind('.$name.','.$myvar.')" href="#">andere seite die sich im selben fenster öffnen soll';
?>
</body>
</html>
```

Ich übergebe der Funktion neuwind sowohl einen Fensternamen als auch eine an
die URL angehängte Variable. Beachte, dass diese beiden Variablen in PHP
in Anführungszeichen gesetzt werden müssen!

Übrigens erhielt ich zu Anfang immer JS-Fehlermeldungen, bis ich die Zeile
	
	
	



```
<script type="text/javascript">
```
 in ein 
	
	
	



```
<script language="JavaScript" type="text/javascript">
```
geändert habe - dann ging es!

Gruß

P.S.: Beachte die Zeile mit dem Aufruf der Funktion: Als href darf nicht der Text
des Links definiert werden.

P.P.S.: Ich würde mir generell angewöhnen, Variablenbezeichnungen wie "Name" nicht zu verwenden, da viele (Script)Sprachen das Wort als reserviertes Wort verwenden.


----------



## dermacz (2. Juli 2004)

So geht jetzt danke für deine Hilfe


----------

