Fenster über Javascript öffnen und PHP-Variable mitgeben
Claudia
- php
Hallo,
ich habe ein Problem ;-)
Und zwar habe ich ein php-Skript (soll eine Umfrage werden). Wenn der User einen Radio-Button angeklickt hat (mit den Antwortmöglichkeiten), dann soll nach Klick auf den 'Abstimmen'-Button zum einen das Ergebnis in die DB geschrieben werden, zum anderen ein kleines Fenster mit dem aktuellen Stand der Abstimmung aufgehen. Dieses kleine Fenster öffne ich mit Javascript, weil ich es in einer bestimmten Größe und ohne Werkzeugleiste haben möchte, und das kriege ich nur so hin.
Jetzt habe ich aber das Problem dass ich meine Variablen aus dem Abstimmungsformular nicht in das Ergebnisfenster rüberkriege. Ich hab schon hier im Forum gestöbert, aber alles, was ich ausprobiert habe, hat nicht funktioniert.
Hier mal der Code im einzelnen:
Datei umfrage.php:
echo "<form action="javascript:window.open('umfrage_erg.php','Umfrageergebnis','width=200,height=300,left=0,top=0')" method="post" target="Umfrageergebnis">";
(... hier steht noch mehr Code, ist aber zum Verständnis nicht wichtig ...)
echo "<FONT face=verdana,arial color=black size=-2><input type="radio" name="ant" value="$row[id_antwort]">$row[antwort]<br>";
echo "<p align=center><input type="submit" value="abstimmen">";
echo "<input type="hidden" name="umfr_id" value="$umfr_id">";
echo "</form></p>";
Datei umfrage_erg.php:
<?php
(...)
echo "$umfr_id";
(...)
?>
In dieser zweiten Datei umfrage_erg.php kommt die Variable $umfr_id nicht an - es wird nichts (=leerer String) ausgegeben.
Ich hatte schon daran gedacht, die Variable an den 'action-Aufruf' dranzuhängen, also 'umfrage_erg.php?umfr_id=$umfr_id', aber das funktioniert auch nicht, anscheinend kann ich in dem action-Teil des Formulars nicht auf die Inhalte der Variablen einzelner Felder zugreifen.
Kann mir einer weiterhelfen? Wäre klasse!
Viele Grüße
Claudia
Hi,
vieleicht so:
echo $_POST["umfr_id"];
Viele Grüße,
Chris
hi,
echo "<form action="javascript:window.open('umfrage_erg.php','Umfrageergebnis','width=200,height=300,left=0,top=0')" method="post" target="Umfrageergebnis">";
das ist natürlich grober unfug!
action hat einen URL zu beinhalten, und kein pseudo-protokoll wie javascript: o.ä. quatsch.
was du aber machen kannst, ist das fenster vorher zu öffnen (z.b. per onsubmit im form), und dann das formular per target-angabe an eben dieses fenster zu schicken.
gruss,
wahsaga
Hello Wahsaga,
da bin ich aber froh, dass Du das gleiche geschrieben hast. Ich musste doch erst grübeln, wie man das vereinfachen und "entchaotisieren" kann. So müsste es dann mit und ohne JS funktionieren.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
Chaos!
echo "<form action="javascript:window.open('umfrage_erg.php','Umfrageergebnis','width=200,height=300,left=0,top=0')" method="post" target="Umfrageergebnis">";
Dein Action-Attribut hat überhaupt keine Ressource!
Der Aufruf des umfrage_erg.php über JS erfolgt per GET ohne Parameter
Hier ein vernünftiges Wechselspiel zwischen Server, Client, PHP und JavaScript hinzubekommen, ist ein etwas größerer Akt. Beginn mal damit, dass Du den JS-Handler auf OnSubmit im Form-Tag legst. Der öffent nur ein neues Fenster. Im Action-Attribut steht nur die ressource.
Da Du das Fenster in JavaScript und in HTML mit demselben Zielnamen bezeichnet hast, wird es dann wohl in den meisten Browsern funktionieren. Garantieren kann ich das aber nicht.
Liebe Grüße aus http://www.braunschweig.de
Tom
Juhu, es funzt *freu*
Danke für Eure Hilfe und das Ent-Chaotisieren :-)))
Viele Grüße + vielen Dank
Claudia
PS: Chris, das mit dem POST hatte ich auch schon probiert, hat nicht so ganz geklappt, aber wahrscheinlich war der ganze Murks einfach schon zu chaotisch *gg*
Hello,
PS: Chris, das mit dem POST hatte ich auch schon probiert, hat nicht so ganz geklappt, aber wahrscheinlich war der ganze Murks einfach schon zu chaotisch *gg*
War ja gar kein Post da.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi Tom,
War ja gar kein Post da.
Ich meinte das hier:
echo $_POST["umfr_id"];
Gruß
Claudia
Hello,
War ja gar kein Post da.
Ich meinte das hier:
echo $_POST["umfr_id"];
Aber woher sollte die Variable kommen, wenn Du das Script doch mit GET aufrufst. Das action-Attribut hatte ja keinen resultierenden Inhalt. Die Browser verhalten sich da äußerst unterschiedlich, was sie mit
<form action='' ...> machen
Liebe Grüße aus http://www.braunschweig.de
Tom