POPUP Fenster
Andreas
- php
Hallo,
ich habe hier mal einen Schnippsel aus einem PHP-Script. An der Stelle, wo auf die Datei "ecards.php" gelinkt wird, möchte ich dass sich dieser Link in einem POPUP Fenster öffnet.
Hat jemand ´ne Idee wie das geht ?
-------------------------------------------------------------------
if ($ecards=="1") {echo "<br><div align='center'><hr width='250' noshade><small>Senden Sie doch mal wieder eine eCard...</small><br><a href='ecards.php'><img src='$base_url/img/ecard.gif' border='0' height='46' width='80' alt='eCards versenden...'></a>\n";} // End Big Table
if ($kategorien=="1") {echo "</td></tr></table>\n";} // End Big Table
-------------------------------------------------------------------
cu
Andreas
Hallo Andreas,
ich habe hier mal einen Schnippsel aus einem PHP-Script. An der Stelle, wo auf die Datei "ecards.php" gelinkt wird, möchte ich dass sich dieser Link in einem POPUP Fenster öffnet.
Wo liegt das Problem? schon mal was von der Javascript-Funktion open() gehört? Mit php alleine geht das nicht, da php auf dem Server ausgeführt wird und nicht im Browser
statt "<a href='ecards.php'>" brauchst du etwa sowas:
<a href="ecards.php" onClick="window.open('ecards.php',...); return false;"> (siehe: http://selfhtml.teamone.de/javascript/objekte/window.htm#open
gruß
Tobias
Hey,
so schlau bin ich auch noch.
Das was ich schon ausprobiert habe ist dieses (man bedenke, das ich an einigen Stellen satt der " ein ' machen muss, da der Webserver sonst einen Fehler auswirft. Nach dem Scriptschnipsel da unten sieht alles ganz gut aus, doch ein Klick auf das Image und es tut sich nichts.
---------------------------------------------------------------------
Abschnitt
if ($ecards=="1") {echo "<br><div align='center'><hr width='250' noshade><small>Senden Sie doch mal wieder eine eCard...</small><a href='javascript:;' onClick='MM_openBrWindow('ecards.php?perpage=$perpage&cat=$cat&page=$page','','menubar=yes,scrollbars=yes,width=570,height=480')'><img src='$base_url/img/ecard.gif' border='0' height='46' width='80' alt='eCards versenden...'><br>\n";} // End Big Table
if ($kategorien=="1") {echo "</td></tr></table>\n";} // End Big Table
?>
---------------------------------------------------------------------
Hallo Andreas,
ich habe hier mal einen Schnippsel aus einem PHP-Script. An der Stelle, wo auf die Datei "ecards.php" gelinkt wird, möchte ich dass sich dieser Link in einem POPUP Fenster öffnet.
Wo liegt das Problem? schon mal was von der Javascript-Funktion open() gehört? Mit php alleine geht das nicht, da php auf dem Server ausgeführt wird und nicht im Browser
statt "<a href='ecards.php'>" brauchst du etwa sowas:
<a href="ecards.php" onClick="window.open('ecards.php',...); return false;"> (siehe: http://selfhtml.teamone.de/javascript/objekte/window.htm#open
gruß
Tobias
Hallo, Andreas,
so schlau bin ich auch noch.
Das was ich schon ausprobiert habe ist dieses (man bedenke, das ich an einigen Stellen satt der " ein ' machen muss, da der Webserver sonst einen Fehler auswirft.
Wieso begrenzt du Strings dann mit Anführungszeichen anstatt Hochkommata? Du willst doch HTML ausgeben, und in HTML werden Attributwerten nunmal in (doppelte) Anführungsstriche eingeschlossen. Hochkommata innerhalb des Strings musst du etsprechend maskieren und Variablen solltest du besser der Übersichtlichkeit wegen und weil in Hochkommata eingeschlossene Strings nicht geparst werden mit . (Punkt) verketten, bspw. $string='murks '.$meinevariable.' purks';.
if ($ecards=="1") {echo "<br><div align='center'><hr width='250' noshade><small>Senden Sie doch mal wieder eine eCard...</small><a href='javascript:;' onClick='MM_openBrWindow('ecards.php?perpage=$perpage&cat=$cat&page=$page','','menubar=yes,scrollbars=yes,width=570,height=480')'><img src='$base_url/img/ecard.gif' border='0' height='46' width='80' alt='eCards versenden...'><br>\n";} // End Big Table
if ($kategorien=="1") {echo "</td></tr></table>\n";} // End Big Table
?>
Hilfe! Grausiger PHP-Code, der grausiges Markup erzeugt! ;)
Nach dem Scriptschnipsel da unten sieht alles ganz gut aus, doch ein Klick auf das Image und es tut sich nichts.
Woher sollen wir wissen, woran das liegt, wir kennen die Funktion MM_openBrWindow nicht. Anstatt eine vorgegebene Funktion zu verwenden, über deren Funktionsweise du selbst nicht Bescheid weißt, solltest du dir besser selbst etwas basteln, was du auch verstehst, wodurch du Fehler vorhersehen bzw. darauf reagieren kannst. Also verwende entweder eine eigene im Seitenkopf deklarierte Funktion, welche die *nötigen* Parameter entgegennimmt und dann mit window.open() ein neues Fenster öffnet, oder du verwendest den window.open()-Aufruf direkt im onclick-Attribut.
Im übrigen wurde dir schon der relevante Verweis zu der Selfhtml-Passage gegeben, welche haarklein erklärt, wie ein Popup-Link aussehen muss, zu deiner Information hier noch einmal: http://selfhtml.teamone.de/javascript/objekte/window.htm#open.
Bezüglich...
href='javascript:;'
...setzt du dich umgehend mit dem Artikel http://home.t-online.de/home/dj5nu/js-popup.html auseinander. Dir ist nämlich ein völlig gedankenloser Umgang mit Technik zu eigen.
[TOFU entsorgt]
Du brauchst bei deinen Postings nicht am Ende den Artikel zitieren, auf den du dich beziehst, es reicht, dass du die relevanten Passagen stehenlässt, auf welche du dich beziehst.
Mathias
Also ich möchte das Popupfenster einer PHP-Datei öffnen nicht einer HTML.
Was mir scheinbar noch fehlt ist, wie ich in dem PHP-Script die script language eingebunden bekomme.
MfG
Andreas
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//DE">
<html>
<head>
<title>Impressionen</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript1.2" src="common/preload.js"></script>
<script language="JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script>
<? Schnipsel...... (ab hier muss irgenwie <script language... etc. rein)
if ($ecards=="1") {echo "<br><div align='center'><hr width='250' noshade><small>Senden Sie doch mal wieder eine eCard...</small><br><a href='javascript:;' onClick='MM_openBrWindow('ecards.php','','scrollbars=yes,resizable=yes,width=500,height=500')'><img src='$base_url/img/ecard.gif' border='0' height='46' width='80' alt='eCards versenden...'></a>\n";} // End Big Table
if ($kategorien=="1") {echo "</td></tr></table>\n";} // End Big Table
?>
</body>
</html>
Hallo, Andreas,
so schlau bin ich auch noch.
Das was ich schon ausprobiert habe ist dieses (man bedenke, das ich an einigen Stellen satt der " ein ' machen muss, da der Webserver sonst einen Fehler auswirft.
Wieso begrenzt du Strings dann mit Anführungszeichen anstatt Hochkommata? Du willst doch HTML ausgeben, und in HTML werden Attributwerten nunmal in (doppelte) Anführungsstriche eingeschlossen. Hochkommata innerhalb des Strings musst du etsprechend maskieren und Variablen solltest du besser der Übersichtlichkeit wegen und weil in Hochkommata eingeschlossene Strings nicht geparst werden mit . (Punkt) verketten, bspw. $string='murks '.$meinevariable.' purks';.
if ($ecards=="1") {echo "<br><div align='center'><hr width='250' noshade><small>Senden Sie doch mal wieder eine eCard...</small><a href='javascript:;' onClick='MM_openBrWindow('ecards.php?perpage=$perpage&cat=$cat&page=$page','','menubar=yes,scrollbars=yes,width=570,height=480')'><img src='$base_url/img/ecard.gif' border='0' height='46' width='80' alt='eCards versenden...'><br>\n";} // End Big Table
if ($kategorien=="1") {echo "</td></tr></table>\n";} // End Big Table
?>
Hilfe! Grausiger PHP-Code, der grausiges Markup erzeugt! ;)
Nach dem Scriptschnipsel da unten sieht alles ganz gut aus, doch ein Klick auf das Image und es tut sich nichts.
Woher sollen wir wissen, woran das liegt, wir kennen die Funktion MM_openBrWindow nicht. Anstatt eine vorgegebene Funktion zu verwenden, über deren Funktionsweise du selbst nicht Bescheid weißt, solltest du dir besser selbst etwas basteln, was du auch verstehst, wodurch du Fehler vorhersehen bzw. darauf reagieren kannst. Also verwende entweder eine eigene im Seitenkopf deklarierte Funktion, welche die *nötigen* Parameter entgegennimmt und dann mit window.open() ein neues Fenster öffnet, oder du verwendest den window.open()-Aufruf direkt im onclick-Attribut.
Im übrigen wurde dir schon der relevante Verweis zu der Selfhtml-Passage gegeben, welche haarklein erklärt, wie ein Popup-Link aussehen muss, zu deiner Information hier noch einmal: http://selfhtml.teamone.de/javascript/objekte/window.htm#open.
Bezüglich...
href='javascript:;'
...setzt du dich umgehend mit dem Artikel http://home.t-online.de/home/dj5nu/js-popup.html auseinander. Dir ist nämlich ein völlig gedankenloser Umgang mit Technik zu eigen.
[TOFU entsorgt]
Du brauchst bei deinen Postings nicht am Ende den Artikel zitieren, auf den du dich beziehst, es reicht, dass du die relevanten Passagen stehenlässt, auf welche du dich beziehst.
Mathias
Haloooooho!?!
Liest du überhaupt was ich dir schreibe? Ich habe dir alles nötige erklärt.
Was mir scheinbar noch fehlt ist, wie ich in dem PHP-Script die script language eingebunden bekomme.
Ich habe doch geschrieben wo dein Fehler war:
"...onClick='MM_openBrWindow('ecards.php','','...')'..."
^ ^ ^ ^^ ^ ^ ^
Du sollst Hochkommata verwenden und eine erneute Verwendung der Stringbegrenzer im String maskieren:
'...onClick="MM_openBrWindow('ecards.php','...','...')"...'
Oder meintwegen:
"...onClick="MM_openBrWindow('ecards.php','...','...')"..."
Dann kommst du mit weniger "Maskierungen" aus, aber wenn der String nicht geparst werden soll, dann sollte man ihn auch richtigerweise so notieren, dass er nicht geparst wird, das ist guter Stil.
Und TOFU hast du auch wieder produziert. Mensch, du musst auch lesen, was ich schreibe, wenn ich dir helfen soll; du musst schon ein wenig mitdenken, hier wird dir nicht alles vorgekaut.
Noch einmal so eine Aktion und es hagelt eine Merkbefreiung.
Grimmige Grüße,
Mathias
Danke Danke Danke,
die Zeile :
Oder meintwegen:
"...onClick="MM_openBrWindow('ecards.php','...','...')"..."
mit der hat´s dann endlich geklappt.
Danke noch mal für soviel geduld.
:-) cu Andreas
hi
Das was ich schon ausprobiert habe ist dieses (man bedenke, das ich an einigen Stellen satt der " ein ' machen muss
ich mach immer " und maskiere die dann, aber dass kann jeder halten wie er will.
<a href='javascript:;' onClick='MM_openBrWindow('ecards.php?perpage=$perpage&cat=$cat&page=$page','','menubar=yes,scrollbars=yes,width=570,height=480')'>
zu dem "javascript:;": http://home.t-online.de/home/dj5nu/js-popup.html
wie sieht denn die Funktion "MM_openBrWindow" aus? Vielleicht fehlt für die open-Funktion dann der Parameter für den Fensternamen (der anscheinend nicht optional ist).
es kann aber auch sein, dass der Browser den onClick-bereich nach dem ' vor "ecards.php?perpage..." abbricht.
Tobias
Moin!
es kann aber auch sein, dass der Browser den onClick-bereich nach dem ' vor "ecards.php?perpage..." abbricht.
So _ist_ es.
Das Ergebnis der PHP-Ausgabe erzeugt schlicht fehlerhaften Javascript-Code:
<a href='javascript:;' onClick='MM_openBrWindow('ecards.php?perpage=$perpage&cat=$cat&page=$page','','menubar=yes,scrollbars=yes,width=570,height=480')'>
Irgendwie sollte entweder um den ganzen Ausdruck im onclick doppelte Anführungszeichen, oder alle einfachen Anführungszeichen innerhalb sollten in doppelte Anführungszeichen gewandelt werden.
Dann bleibt nur noch das Problem: Wie veranlasst man PHP, doppelte Anführungszeichen aus _auszugeben_, wenn der entsprechende String schon durch doppelte Anführungszeichen begrenzt wird.
Mein Tipp (dem Postingstil des Fragers angemessen):
echo "das ist der String mit ".'"'." drin";
Statt einmal " also ".'"'." nehmen, und gut ist.
Geht umgekehrt übrigens ganz genauso:
echo 'das ist der String mit '."'".' drin';
- Sven Rautenberg