Zur Navigation

Fenster automatisch schließen

1 Marcel (Gast)

Guten Abend

Auf meiner neuesten Seite habe ich einen Adminbereich mit allen Standardfunktionen. Die Anwendung dieser kann man sich wie folgt vorstellen:

Ich klicke auf einen Beitrag, mir wird ein Pop-Up geöffnet in dem der entsprechende Name, das Datum und der eigentliche Text angezeigt werden. Im unteren Teil gibt es die IP-Adresse und die Beitrags-ID. Darunter widerrum befinden sich alle wichtigen Funktionen: freischalten, editieren, löschen, ausloggen.

Mein eigentliches "Problem" nun:

Angenommen ich lösche einen Beitrag (dann ist er logischerweise weg) und er kann nicht mehr angezeigt werden. D.h. es würde total dusselig aussehen, dort ein Fenster mit den Funktionen, aber ohne Inhalt anzuzeigen. Deswegen würde ich gerne das Fenster nach der Bestätigung schließen. Also, ich klicke auf "Löschen", der Beitrag wird gelöscht und das Pop-Up sofort geschlossen. Falls so etwas nicht möglich ist, würde ich mich auch mit folgender Variante zufrieden geben:

Ich bestätige per Button, der Beitrag wird gelöscht, mir wird eine Bestätigungsmeldung ausgegeben und das Fenster beispielsweise nach 3 Sekunden geschlossen.

Ich hoffe mein Problem ist einigermaßen nachvollziehbar.


Vielen Dank im voraus.

21.04.2006 22:21

2 C)-(iLL@

Hi Marcel,

Ich hoffe mein Problem ist einigermaßen nachvollziehbar.
Ich hoffe ich habs verstanden :) Sagen wir Du hast mother.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
var popwin;
function popup(pfad,wdt,hgt){
  var opts = "height="+hgt+", width="+wdt+", resizable=yes,status=no,scrollbars=yes,menubar=no,titlebar=yes,fullscreen=no";
   popwin = window.open(pfad,"",opts);    
}
</script>
</head>
<body>
<a href="javascript:popup('son.php', 300, 150)">Fenster</a>
</body>
</html>
dieses öffnet beim Klick auf den Link die son.php mit folgendem Inhalt:

<?php
  $deleted = false; //initialisieren
  if ($_POST['delete']) {
     /*löschen, bla bla*/
     $deleted = true; //Löschen war erfolgreich
  }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php if ($deleted) { ?>
<strong>Sie haben gel&ouml;scht. Das Fenster wird gleich geschlossen.</strong>
<?php } ?>
<form method="post" action="<?=$_SERVER['PHP_SELF']?>">
<p><input type="submit" name="delete" value="l&ouml;schwas" /></p>
</form>
<?php  if ($deleted) { ?>
<script type="text/javascript">
  window.setTimeout('self.close()', 3000);
</script>
<?php  } ?>
</body>
</html>

Dann schließt dieses nach 3 Sekunden, nachdem Du den löschen-Button gedrückt hast. Wenn Du es sofort willst, dann verwende anstatt der Zeile 'window.setTimeout...' im Skript-Block einfach 'self.close();'.

Du lässt praktisch das Javascript am Ende von php rausschreiben, wenn eine Bedingung erfüllt ist ($deleted == true). Wenn etwas daneben gegangen ist oder nichts gedrückt wurde, setzt Du $deleted nicht true und gibst evtl. den Fehler aus.



22.04.2006 00:55 | geändert: 22.04.2006 01:03

3 Marcel (Gast)

Wieder mal ein großes Dankeschön.
Funktioniert einwandfrei. :)

23.04.2006 00:07

4 ich bins ;)) (Gast)

Hi ihr Website-Gurus,

sicher kann man mir helfen. (Ich hoffe)

Habe ein php skript :

<?
Error_Reporting(E_ALL & ~E_NOTICE);

 while ($request = current($_REQUEST)) {
 	if (key($_REQUEST)!='recipient') {
		$pre_array=split ("&777&",  $request);
		$post_vars[key($_REQUEST)][0]=$pre_array[0];
		$post_vars[key($_REQUEST)][1]=$pre_array[1];
	}
	next($_REQUEST);
}



reset($post_vars);
$subject="From ".$post_vars['your_name'][0] ;
$headers= "From: ".$post_vars['your_email'][0] ."\n";
 $headers.='Content-type: text/html; charset=iso-8859-1';
 $message='';
  while ($mess = current($post_vars)) {
  	if ((key($post_vars)!="i") && (key($post_vars)!="your_email") && (key($post_vars)!="your_name")) {

	 	$message.="<strong>".$mess[1]."</strong>&nbsp;&nbsp;&nbsp;".$mess[0]."<br>";
	}
	next($post_vars);
 }

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Kontakt</title>
</head>
<body>
<br>
  ".$message."
</body>
</html>" , $headers);
echo ("Nachricht wurde erfolgreich versendet ! Message was successfully sent !");

?>
<script>
	resizeTo(500, 300);
</script>

... funktioniert auch einwandfrei !

Das wichtigste:
1.
Nun soll sich das Fenster nach ... Sekunden automatisch wieder schließen.

Wäre auch sehr cool:
2.
Würde auch gerne einen Hintergrund mit einbinden (.jpg oder der Gleichen)

3.1
Die Schrift sollte dann weiß sein, da der Hintergrund schwarz ist.

3.2
"Nachricht wurde erfolgreich versendet !"
... und ...
"Message was successfully sent !"

sollte untereinander stehen (mittig) vobei der deutsche Text "fett" und etwas größer sein sollte.


Ich weiß, das sind ja gleich 3 Wünsche aufeinmal.
Sei doch bitte einer mein Ü-Ei.

Das wäre sooo cooool.

Achso, Am besten wäre es, wenn man es mir gleich zusammen gleich eingebaut übergibt.

Hab nämlich bereits Stunden lang versucht einige dinge selbst irgendwo einzubauen.
Leider fehlerhaft, da ich garnicht weiß wo es hinkommt.

Ich bedanke mich schon einmal recht herzlich für die Hilfe.

05.01.2009 22:22

5 ich bins wieder der> (Gast)

Ich geb ja nicht auf...

und habe das mit dem schließen hinbekommen.

...

</html>" , $headers);
echo ("Nachricht wurde erfolgreich versendet ! Message was successfully sent !");

?>
<script>
	resizeTo(500, 300);
	window.setTimeout('self.close()', 3000);
</script>

Und nu wird gefragt verd...te Hacke ob sich "das fenster wieder schließen soll."

sher komisch...warum gibts den sowas.
dann brauch man das doch erst garnicht einbauen, wenn man dann sowieso selbst handeln muß um das fenster zu schließen.


argh... HIIIILFEEE


05.01.2009 22:55

6 ichbins

und ich nochmal...

sollte man es hinbekommen, daß sich das fenster in der mitte des bildschirms öffnet...
(genau wie das Warn-Fenster "Die Webseite versu...")
Und womöglich auch noch so aussieht.

mit Text zum klicken ">>>Fenster schließen<<<"

...das wäre auch ok...

besser als nix !

macht dann wenigsten trotzdem noch mehr her als so, wie ich es nu hab :((


06.01.2009 00:18

7 Jörg Kruse

Hallo ichbins,

Und nu wird gefragt verd...te Hacke ob sich "das fenster wieder schließen soll."

In welchem Browser wurde dieses Popup denn geöffnet? In Firefox wird die Seite ohne Vorwarnung geschlossen.

sollte man es hinbekommen, daß sich das fenster in der mitte des bildschirms öffnet...
(genau wie das Warn-Fenster "Die Webseite versu...")
Und womöglich auch noch so aussieht.

Fenster öffnen kannst du mit window.open - dabei kannst du auch verschiedene Parameter übergeben, wie z.B. Position und Größe. Im Detail beschrieben ist dies auf SELFHTML:

http://de.selfhtml.org/javascript/objekte/window.htm#open

Für die Gestaltungs-Fragen 1 bis 3 in Beitrag 4 solltest du besser einen gesonderten Thread im Unter-Forum XHTML / CSS eröffnen

06.01.2009 10:21 | geändert: 06.01.2009 10:21

8 ichbins

Hallo Jörg,

erstmal vielen Dk für die Mithilfe.

Ich hatte schon befürchtet, daß ich an " SELFHTML " übergeben werden würde.
Das scheint man in vielen Foren so zu machen.

Hab da auch schon nachgeschaut, einiges gefunden.
Einbauen: ohne Erfolg !

Ich habe den Winbrowser, und da kommt die Meldung.
Hätte es gern gehabt würde die Warnung erst garnicht kommen.
Egal welche "Brause" ;)

Ist jedoch nicht so schlimm, wenn ich einen Button in dem Fenster hätte "Schließen", Das macht ein wenig mehr her, wäre es auch ok.

( fenster.open ) ja, das hatte ich schon gelesen. Jedoch wird das Fenster bereits über php geöffnet.

Und, egal was ich wo in das skript einbaue, es funktionirt dann nicht mehr.
Als würde es den Befehl der Flashhseite nicht mehr verstehen.
Was ich nicht verstehe ist, was hat die php-Funktion mit der html-Darstellung zu tun.
Nach meinem Verständnis sollten das doch zwei verschiedene paar Schuhe sein.
Oder brauch die html von php damit es so scheint wie es soll ?


Also es sendet keine Mail mehr, und es kommt eine Error-Meldung (Syntex) << oder so ähnlich.

Hab langsam das Gefühl, daß an dem Skript nicht viel zu ändern erlaubt.
Oder benutz ich einfach nur das falsche Prog (GoLive9).
Obwohl das ( window.setTimeout('self.close()', 3000);
) hat`s ja auch angenommen.
Zwar nicht da wo ich es hinklatschen sollte, aber da unten funzt`s ;)

Vielleicht kann mir ja Jemand mal was in das skript mit einbauen das erkennbar wäre, dann würd ich wenigsten erkennen, DOCH das ist funktionell zu ändern.

Ich würde erkennen was und wie und wo es alles geändert wurde, und denke ich könnte da bestimmt selbst weiter kommen.

(Obwohl nicht einmal der Titel angezeigt wird)

hmmm....

06.01.2009 13:53

9 Jörg Kruse

Ist jedoch nicht so schlimm, wenn ich einen Button in dem Fenster hätte "Schließen", Das macht ein wenig mehr her, wäre es auch ok.

Sollte so gehen:

<p style="text-align:center"><button type="button" onclick="self.close()">Schließen</button></p>

06.01.2009 14:09

10 ichbins

wow das ging ja schnell ;))

das hatte ich schon.

problem wo kommts hin.

vielleicht ein stück von dem skript kopieren und da einfügen wo es hinkommt.

das wäre nett.

ich denke es muß so, oder ?:

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Kontakt</title>
</head>
<p style="text-align:center"><button type="button" onclick="self.close()">Schließen</button></p>
<body>
<br>
  ".$message."
</body>
</html>" , $headers);
echo ("Nachricht wurde erfolgreich versendet ! Message was successfully sent !");

?>
<script>
	resizeTo(500, 300);
</script>

oder vielleicht so?:

mail($_REQUEST['recipient'], $subject,  "
<html>
<head>
 <title>Kontakt</title>
</head>
<body>
<br>
  ".$message."
</body>
</html>" , $headers);
echo ("Nachricht wurde erfolgreich versendet ! Message was successfully sent !");

?>
<script>
	resizeTo(500, 300);
	<p style="text-align:center"><button type="button" onclick="self.close()">Schließen</button></p>
</script>


bis zur Antwort versuch ich nochmal beides.

06.01.2009 14:16