Fenster öffnen, Inhalt drucken, Fenster schließen

dermacz

Erfahrenes Mitglied
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:
<?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
 
Zuletzt bearbeitet:
Hi,

PHP:
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ß
 
Also sry aber das geht nicht...ich setze das so ein
Das ganze is inm einem PHP-Doc
PHP:
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:
<?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
 
Zuletzt bearbeitet:
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:
PHP:
   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...;) ).
 
Zuletzt bearbeitet:
SRY
aber ich bekomm das nicht zum laufen...
kannst du es bitte mal versuchen...Kann mir nurnoch vorstellen das ich es falsch verlinkt habe....

PHP:
<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
 
Wart mal eben ein paar Minuten ... ich versuch das gleich mal in PHP und packe
das Ergebnis in dieses Posting - bis gleich!
 
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)
 
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:
PHP:
<!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
PHP:
<script type="text/javascript">
in ein
PHP:
<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.
 
Zuletzt bearbeitet:
Zurück