phpbar.de logo

Mailinglisten-Archive

[php] neues fenster mit inhalt per link =?iso-8859-1?Q?=F6ffnen?=

[php] neues fenster mit inhalt per link =?iso-8859-1?Q?=F6ffnen?=

=?iso-8859-1?Q?Andr=E9?= Laugks L-Andre_(at)_gmx.de
Sat, 23 Sep 2000 17:55:56 +0200


Hallo!

Jonathan schrieb:
> habe mal wieder eine frage. in einer datenbank habe ich php code
> gespeichert, den ich nun in einem neuen fenster anzeigen möchte. als erstes
> bekommt der user eine übersicht zu gesicht, in der dann auch ein link zu dem
> entsprechenden code ist.

siehe Beispiel!


> win.document.write('$code');

> $code ist dabei der code, den ich aus der datenbank erhalte - das hat aber
> nicht gefunzt. da habe ich eine JavaScript fehlermeldung erhalten, die auf
> irgendeine stelle im text verwiesen hat, aber in der war nur normaler html
> code enthalten.

Hättest ja mal die fehlermeldung mit angeben können.
Bei JS stehen keine $ vor der Variable. In ein neues Fenster 
schreibt man so, wie in eine Datei mit PHP, öffnen, rein schreibe
und schließen.

text = "Dieser Text kommt aus der DB".
win.document.open();
win.document.write(text);
win.document.close();

Da Du aber alles mitschreiben mußt, inklusive <html>,<body> etc.,
kann das eine sehr lange angelegenheit werden. Man kann das noch 
verkürzen. writeln erzeugt im Gegensatz zu write einen Zeilenumbruch, 
also ein \n.

z.B.
text = "Dieser Text kommt aus der DB".
with(win.document)
{
 open();
 writeln("\<html\>\<body\>");
 writeln(text);
 writeln("\<\/body\><\/html\>");
 close();
}

Ich habe letzte Woche hier eine Lösung geschrieben. Das müßtest
Du Dir noch anpassen. Ich habe es unter Unix nicht getestet.
Also testet es mit eingeschaltetem und abgeschaltetem JavaScript.
Wenn mit abgeschaltetem JavaScript kein neues Fenster aufgeht,
versuche es mit target="_new", anstatt target="_blank".
Wenn Du kein Formular hast, sondern ein Link, sieht das so aus.

<a href="DB_inhalt.phtml" onClick="suchen('autos'); return
false;">Autos</a>


----------------------------><8----------------------------
Mit JavaScript kannst Du ein Fenster mit einer vordefinierten
Größe öffnen. Mit einem Event funktioniert es auch ohne 
JavaScript.

Du schreibst in den Form-Tag den Event onsubmit(). Beim
Aufruf des Formulars, wird das Abschicken durch "return false;"
unterdrückt. Durch onclick() im Submitbutton rufst Du aber
die Funktion auf, welche sich das Suchwort aus dem Formularfeld
holt und hängt es an suchscript.phtml an. Dann wird das neue 
Fenster aufgerufen.
Sollte JavaScript abgeschaltet sein, wird das JavaScript 
ignoriert und somit auch die Events onsubmit() und onclick(). 
Das neue Fenster wird nun über target="_blank" geöffnet.
Das setTimeout() ist dazu da um das neue Fenster nach 300
Milisekunden, kannst auch mehr oder weniger geben, in den 
Vordergrund zu holen. Es kann sein, das sich der Focus der 
Fensters, in dem das Suchformular ist, beim klicken auf suchen, 
mit dem Focus des neuen Fensters überlagert und somit das neu 
Fenster im Hintergrund bleibt.
Weitere Parameter für des neue Fenster.
http://www.screenexa.net/de.comp.lang.javascript/faq/fenster/winopen.html

Getestet habe ich es unter NN4.7, NN3.1, Opera4.02,
IE5.0 und hat funktioniert.

<script type="text/javascript" language="javascript">
<!--
function suchen()
{
    suchstring = document.formular.suchwort.value;
    url = "suchscript.phtml?suchwort=" + suchstring;
    fenster = open(url, "suchfenster",
"width=500,height=500,scrollbars=1");
    setTimeout('fenster.focus()',300);
}
//-->
</Skript>

<form name="formular" action="suchscript.phtml" method="get"
target="_blank" onsubmit="return false;">
    <input type="text" name="suchwort" size="10">
    <input type="Submit" value="Suchen" onclick="suchen()">
</form>
--------------------------><8---------------------------------

Wenn Du fragen hast, einfach Fragen! Vielleicht hast Du ja eine
genaue Problemstellung, wann und überwas sich das Fenster öffnen
soll.


MfG, André Laugks


php::bar PHP Wiki   -   Listenarchive