Pop-UpFenster verzögert öffen über JS onclick=
Marco
- php
Hallo Leute,
habe ein kleines Problem und nach 12 Std. probieren und lesen, habe ich immer noch keine Lösung ich hoffe Ihr könnt mir helfen.
Zum Problem:
In einem PHP Dokument wird durch betätigen eines Submit-Buttons der Wert/Inhalt einer Textbox (beliebige HTML-Adresse eines Bildes) in eine Variable geschrieben. Gleichzeitig wird durch den Befehl onclick= ein JavaScript aufgerufen das ein PopupFenster öffnet in dem das Bild von der HTML-Adresse aus der Variable geladen wird.
Das Problem ist jetzt das ich nur ein "blank" PopupFenster bekomme, wenn ich dann erneut auf den Button klicke dann klappt es, da dann die HTML-Adresse ja schon in der Variable steht.
Wenn ich mit Mouseout= arbeite und 1-2sec auf dem Button noch verweile klappt es wunderbar.
Ich habe schon diverse Versuche mit onmove= onmouseout= dblclick= ,....usw ausprobiert des weiteren habe ich versucht mit setinterval und auch mit set timeout. Habe auch Extra die Abarbeitungsreihenfolge im Quelltext beachtet.
Hier ein Teil des Quellcodes:
<head>
<?php
$imagelink=$_GET["imagelink"];
?>
<script type="text/javascript">
<!--
function PopupFenster() {
F = window.open("<?php echo "$imagelink" ?>","Popup",
"width=450,height=337"); }
// -->
</script>
</head>
<body>
<input type="text" name="imagelink" value="<?php echo $imagelink ?>"
maxlength="150" size="59">
<input type="submit" name="test" value="Test"
onclick="javascript:PopupFenster()">
</body>
Wer es mal ausprobieren/anschauen möchte:
http://www.vision-vw.de/carlisteanmeldung.php
Hoffe jemand hat noch ne Lösung oder ne Super Alternative.
Ich möchte halt dem User die Möglichkeit geben zu kontrollieren ob
die HTML-Adresse richtig ist bevor die Daten in die Datenbank geschrieben werden.
Danke schonmal für Eure Hilfe
Mit freundlichen Grüßen
Marco
Admin von Vision-VW.de
Moin,
In einem PHP Dokument wird durch betätigen eines Submit-Buttons der Wert/Inhalt einer Textbox (beliebige HTML-Adresse eines Bildes) in eine Variable geschrieben. Gleichzeitig wird durch den Befehl onclick= ein JavaScript aufgerufen das ein PopupFenster öffnet in dem das Bild von der HTML-Adresse aus der Variable geladen wird.
Naja, wie soll denn das funktionieren?
In dem Moment, wo Du Dein Formular abschickst, steht in Deiner Funktion, die das Popup öffnet, ja auch noch keine Adresse drin, kann ja nicht.
Du vergisst, dass PHP ausgeführt wird, BEVOR die Seite angezeigt wird, und demnach auch BEVOR der Benutzer irgendwas eingeben kann.
Dann öffnest Du mit JavaScript ein Fenster, während parallel das Formular neu geladen und die URL ingetragen wird. So kann das nicht gehen.
Du musst im Moment des Abschickens die URL für das neue Fenster mit JavaScript aus dem Eingabefeld holen und als Parameter an window.open() übergeben. Mit PHP hat das Problem rein gar nichts zu tun.
Gruß,
-Efchen
@ Efchen
Du musst im Moment des Abschickens die URL für das neue Fenster mit JavaScript aus dem Eingabefeld holen und als Parameter an window.open() übergeben. Mit PHP hat das Problem rein gar nichts zu tun.
Das Tu ich ja im moment des submit wird der Wert des eingabefensters in eine Variable geschrieben und das Javascricpt greift auf diese zu.
Wie sonst kann ich den Inhalt einer Textbox ohne submit auslesen ???
@ Tom
Für den fall, dass JavaScript nicht eingeschaltet ist. Dann sollte das Form ja schließlich ein ganz normales Fenster öffnen mit der Ressource.
Habe mir deswegen schon gedanken gemacht und würde ja js ganz vermeiden.
Habe auch inzwischen einen Aufbau auf PHP bassierend, dort ist nur zum schluß jetzt mein problem das ich nach einer kontrollabfrage ob der Wert $imagelink gesetzt ist oder nicht entweder einen Alert hätte der dem User mitteilt er soll noch mal auf Test klicken oder dann ein neues Fenster öffnet indem das Bild angzeigt wird.
so aller Art: open.window.neu (imagelink)
Da habe ich nur noch keine ordenliche Info gefunden.
Und es wäre ja schon wieder jave.
@ ALL
Gibt es keine Möglichkeit per php oder html ein neues Fenster zuöffnen also : <a href="Imagelink" target="_blank">Zum Bild</a>
Nur das sich sofort das Fenster öffnet und nicht erst ich auf Zum Bild klicken muß.
Gruß
Marco
Für alle die sichs mal ansehen wollen
http://www.vision-vw.de/carlisteamledung.php per JS mit 2 auf Test klicken
http://www.vision-vw.de/carlisteanmledung1.php per PHP nach klick auf Test entweder Error oder Bildlink( wenn vorher eingetragen wurde
Moin,
Das Tu ich ja
Nein. Du vermischst eine clientseitige Sprache mit einer serverseitigen Sprache und vergisst dabei, dass diese nicht auf der gleichen Ebene ablaufen.
im moment des submit wird der Wert des eingabefensters in eine Variable geschrieben und das Javascricpt greift auf diese zu.
Nein. Beim Submit wird zunächst Deine Funktion zum Öffnen eines neuen Fensters aufgerufen über den Event-Handler onClick. Zu dem Zeitpunkt befindet sich noch KEINE URL in Deiner JavaScript-Funktion, deswegen wird das Fenster leer geöffnet.
Dann wird der Submit ausgeführt. Jetzt wird ein Parameter an das PHP-Script übergeben, das den Wert in eine Variable schreibt.
Das PHP-Script erzeugt nun eine neue HTML-Seite, in der in Deinem JavaScript-Code die vorher im Eingabefeld eingegebene URL in die Funktion für window.open geschrieben wird.
Dann wird die Seite vom Server an Deinen Browser geschickt und angezeigt. Das leere Popup-Fenster bleibt die ganze Zeit über sichtbar.
Dein Browser zeigt die Seite an und - fertig. Sonst passiert nichts.
Erst wenn JETZT nochmal auf Submit geklickt wird, erscheint die URL im Popup.
Wie sonst kann ich den Inhalt einer Textbox ohne submit auslesen ???
Natürlich nur mit JavaScript!
Gibt es keine Möglichkeit per php oder html ein neues Fenster zuöffnen also : <a href="Imagelink" target="_blank">Zum Bild</a>
Nur das sich sofort das Fenster öffnet und nicht erst ich auf Zum Bild klicken muß.
Wie? Was?
Gruß,
-Efchen
Hello,
Hier ein Teil des Quellcodes:
<?php
$imagelink=trim($_POST["imagelink"]);
?>
<html>
<head>
<script type="text/javascript">
<!--
function PopupFenster(imagelink)
{
F = window.open(imagelink,"Popup",
"width=450,height=337");
F.focus();
return false;
}
// -->
</script>
</head>
<body>
<form name="form1"
action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="post"
enctype="multipart/form-data" target="Popup">
<input type="text"
name="imagelink"
value="<?php echo $imagelink ?>"
maxlength="150" size="59">
<input type="submit"
name="test"
value="Test"
onclick="return PopupFenster(this.form.imagelink.value)">
<?php if(strlen($imagelink)>0)
{
echo "<script type="text/javascript">\n".
"<!--\n".
" PopupFenster($imagelink);\n".
"// -->\n".
"</script>\n";
}
?>
</form>
</body>
</html>
http://www.vision-vw.de/carlisteanmeldung.php
Probier es mal so.
Allerdings musst Du das noch fertig durchdenken, für den fall, dass JavaScript nicht eingeschaltet ist. Dann sollte das Form ja schließlich ein ganz normales Fenster öffnen mit der Ressource.
Solange JavaScript läuft, wird der Post übnerhaupt nicht abgeschickt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Moin,
Unterscheidet sich ja im Grunde nicht so ganz von meinem Vorschlag, außer dass Du ihm die Arbeit abgenommen hast, und er nicht kapiert, warum es so ist und die Frage dann irgendwann wieder kommt :-)
Gruß,
-Efchen
Hello Efchen,
Unterscheidet sich ja im Grunde nicht so ganz von meinem Vorschlag, außer dass Du ihm die Arbeit abgenommen hast, und er nicht kapiert, warum es so ist und die Frage dann irgendwann wieder kommt :-
Da Marco schlau genug war, den für uns relevanten Code aus dem Script auszuschneiden, wird er sich auch mit der halben Lösung von mir beschäftigen und die zu einer ganzen umbauen.
Dazu könnte er sich wieder meine berühmten Zettelchen malen, auf denen der Zustand des Screens nebst relevanten Funktionen zu jedem Zeitpunkt dargestellt wird. Dazwischen legt er die dann für den Server und kann so wunderbar Übersicht gewinnen über den zeitlichen Ablauf.
Da war doch die letzten Tage ein interessanter kurzer Thread... Nur, wenn weil sich seine Problöeme strukturiert und ausformuliert, kommt man oft schon auf die Lösung.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom