Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

php - javascript - window.open

Empfohlene Antworten

Veröffentlicht

Ich hab folgendes Prob.

Erstelle grad ne Personaldatenbank mit PHP und MySQL

In einem Formular erfasse ich Personaldaten, die ich dann in Form eines PDF - Dokumentes als Personaldeckblatt ausgeben lasse.

Klappt ja soweit auch alles ganz prima -- innrhalb des selben Fensters --

Nun möchte ich aber dieses PDF in einem neuen Fenster öffnen.

Und genau da geht das Problem los.

-- Das Fenster öffnet sich ja auch, sogar die Deckblatt - Maske stimmt, aber die in das Formular eingetragenen Daten werden nicht übermittelt.

Hat jemand 'ne Idee oder vieleicht sogar 'n kleines Script-Beispiel, mit dem ich dieses Problem lösen kann?

Was hast du im HTML-Code denn für eine action im <form>-Tag angegeben? Oder wie und wo rufst du dein window.open() auf?

Habe das folgendermaßen gelöst:

echo "<input type='button' name='Verweis' value='Deckblatt' onClick=\"window.open('deck-ma.php','Deckblatt','width=300,height=400');\">";

Die PDF-Datei wird ja wie gesagt auch geöffnet, nur eben leer :confused:

Natürlich. Der Button ist ja auch kein Submit-Button. Das heißt, das Formular wird nicht abgesendet und damit auch nicht die ganzen Daten.

Es gibt IMHO zwei Wege: entweder, du definierst die <form>-Zeile folgendermaßen:

<form action="deck-ma.php" method="post" target="_blank"> ...

dann hast du aber keine Kontrolle über die Größe und das Aussehen des Zielfensters.

Oder du schickst die Daten erstmal an das Formular selbst, erstellst im Hintergrund die PDF-Datei und läßt dann beim Laden des "Ursprungsfensters" über ein OnLoad des Bodys ein neues Fenster erstellen, welches die generierte PDF-Datei anzeigt.

Hoffe, das war net zu konfus

Hi, kLeiner_HobBes

Naja, den ersten Teil hab ich ohne weiteres verstanden.

Hab ja im "<form action=....>" 'ne Datei mit eingebunden. Das Problem jetzt ist eigentlich folgendes.

Ich habe mehrere "<input type='submit' ...>", diese werden in einer Datei verarbeitet und auf diese wollte ich mit diesem Button eigentlich nicht zugreifen.

Aber wenn ich den zweiten Teil deiner Antwort richtig verstehe, muß ich genau das tun.

Hi, *I C Q*

Und wenn ich dich richtig verstehe, mußich in dem "window.open - Befehl alle zu übergebenden Werte mit eintragen. Das klingt zwar ziemlich schreibaufwendig, aber es scheint 'ne gut Alternive zu sein.

Hm, irgendwie stelle ich mich wohl etwas blöd an.

Sobald ich

window.open('deck-ma.php?wert1=\"document.test.ma_vname.value\"');>

eingebe, funktioniert der Button gar nicht mehr :confused:

Was genau mache ich falsch ?

Hm, irgendwie stelle ich mich wohl etwas blöd an.

Sobald ich

window.open('deck-ma.php?wert1=\"document.test.ma_vname.value\"');>

[...]

Was genau mache ich falsch ?

Lass mal die \" weg... ich denke das koennte es schon gewesen sein.

Nee, dann steht nachher in $_GET["wert1"] der String "document.test.ma_vname.value" drin.

Wenn, dann so:

window.open('deck-ma.php?wert1=' + document.test.ma_vname.value);

Eure Tipps sind ein großes Dankeschön wert. :uli

Allerdings hab ich es jetzt doch anders gelöst, über eine Zwischendatei,in der ich die entsprechenden Daten in einer Sessiondatei speichere und darunter im <body> - tag ein onLoad eingefügt habe, mit dem ich die PDF-Datei in einem neuen Fenster anzeigen lasse.

session_register('daten');

echo"<body bgcolor='#E0E0E0' onLoad=\"window.open('deck-ma.php','Deckblatt','width=600,height=600');\">";

include('erf-ma.php');

echo "</body>";

Im eigenen Fenster wird dabei wieder das Erfassungsformular angezeigt.

Im endeffekt doch ähnlich dem Vorschlag von kLeiner_HobBes.

Aber jetztläuft es so, wie es soll.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.