Archiv verlassen und diese Seite im Standarddesign anzeigen : [Variablen] Formularvariablen an ein popup geben
blade230 01-03-2005, 19:34 Hallo Gemeine,
ich möcht Formulareingaben an ein Popup übergeben, ohne den target-Befehl aus dem Form-Tag zu nutzen.
Ich möchte ein Fenster ohne Status und navigation in einer bestimmten größe.
Wenn ich das Fenster per JavaScript aufrufe, werden die Variablen nicht übergeben.
Danke für eure Hilfe
Tom
penizillin 01-03-2005, 19:40 dann muss target-angabe (submit auch) über js erfolgen, afaik.
Original geschrieben von blade230
Wenn ich das Fenster per JavaScript aufrufe, werden die Variablen nicht übergeben.
wetten, doch ?
du kannst per JS:
- Form-Var auslesen und beim Öffnen der URL als Parameter dranhängen, oder
- vom Popup aus direkt auf das Hauptfenster zugreifen und auslesen
btw: *verschieb*
blade230 01-03-2005, 19:56 OK.
Ich dachte ich könnte mir die Arbeit ersparen und mit php direkt per
$var = $_POST['formvar'];
draufzugreifen.
Tom
ein Popup ist nun mal nur über target oder JS zu öffnen, da du aber was gegen target hast, bleibt nur der JS-Weg.
blade230 01-03-2005, 21:17 Für diejenigen, die auch mal vor dem Problem stehen sollten,
hier die Lösung:
function newUser()
{
var w = 240; //Breite des neuen Fensters
var h = 180; //Höhe des neuen Fensters
var nw = screen.availWidth; //aktuelle Bildschirmweite
var nh = screen.availHeight; //aktuelle Bilschirmhöhe
var x = ((nw - w) / 2); //berechnung für Center
var y = ((nh - h) /2); //berechnung für Center
var i = document.form[0].length; //auslesen aller elemente im form
var s="";
for(var x = 0; x<i; x++)
{
if(x == 0)
{
s = s + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
else
{
s = s + "&" + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
}
window.open('insert_user.php?'+s, 'newUser', 'toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no ,width=' + w +',height=' + h + ',left=' + x + ',top=' + y +'');
}
//-->
</script
In PHP ganz normal mit $_GET['formelement'] drauf zu greifen.
Danke für die Hilfe.
Tom
Presssack 13-03-2005, 21:42 Hi,
Danke für das Script, genau sowas such ich um für ein in PHP geschriebenes Emailscript eine Vorschau der eingetragenen Daten in einem neuen Fenster zu erhalten, nur leider reagiert bei mir der Browser kein Stück wenn ich auf den Vorschau Button klicke.... ich hab mal den essentiellen Teil des Scripts mit gepostet, falls ihr alles benötigt, dann bitte bescheid sagen...
Vielen Dank
Presssack
//Funktion form
function form($to="",$cc="",$bcc="",$subject="",$message="") {
echo "<form action=\"$PHP_SELF\" method=\"POST\" enctype=\"multipart/form-data\" name=\"emailform\" lang=\"de\"> ";
echo "<table style=\"margin-top:30px;\">";
$filename = 'absender.txt';
$fp = fopen($filename, 'r');
fgets($fp,1024) or die('Die Datei $filename existiert nicht');
fclose($fp);
$absender_array = file($filename);
echo "<tr><td>Absender:</td><td><select name=\"from\" class=\"field\" >
<option value=\"\">-- Bitte auswählen --</option>";
foreach($absender_array as $zeile)
{
$zeile = trim($zeile);
echo "<option value=\"$zeile\">$zeile@domain.de</option>";
}
echo <<<FORM
</select></td></tr>
<tr><td>Empfänger:</td><td><input type="text" size="45" name="to" value="$to" class="field"></td></tr>
<tr><td>Kopie an:</td><td><input type="text" size="45" name="cc" value="$cc" class="field"></td></tr>
<tr><td>Blindkopie an:</td><td><input type="text" size="45" name="bcc" value="$bcc" class="field"></td></tr>
<tr><td colspan="2" style="height:20px;"></td></tr>
<tr><td>Betreff:</td><td><input type="text" size="90%" name="subject" value="$subject" class="field"></td></tr>
<tr><td colspan="2" style="height:10px;"></td></tr>
<tr><td valign="top">Nachricht:</td>
<td><textarea type="text" size="90%" name="message" class="field" cols="68" rows="10">$message</textarea>
</td></tr>
<tr><td colspan="2" style="text-align:right;"><input type="button" name="preview" value="Vorschau" class="field"
onMouseOver="this.value='Noch nicht Funktionsfähig';" onClick="Preview()"></td></tr>
<tr><td></td><td><input type="submit" size="90%" name="senden" class="field" value="Senden">
<input type="reset" size="90%" name="delete" class="field" value="Alles Löschen"></td></tr>
</table></form>
FORM;
};
//Schliessen der function 'form'
//Das hier steht im <head> TAG </head>
<script language="JavaScript" type="text/JavaScript">
<!--
function Preview()
{
var w = 800; //Breite des neuen Fensters
var h = 400; //Höhe des neuen Fensters
var nw = screen.availWidth; //aktuelle Bildschirmweite
var nh = screen.availHeight; //aktuelle Bilschirmhöhe
var x = ((nw - w) / 2); //berechnung für Center
var y = ((nh - h) /2); //berechnung für Center
var i = document.form[0].length; //auslesen aller elemente im form
var s="";
for(var x = 0; x<i; x++)
{
if(x == 0)
{
s = s + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
else
{
s = s + "&" + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
}
window.open('preview.php?'+s, 'Preview', 'toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no
,width=' + w +',height=' + h + ',left=' + x + ',top=' + y +'');
}
//-->
</script>
Zusatz: Die Datei "preview.php" existiert im selben Verzeichniss
Presssack 13-03-2005, 22:43 Nach einer dreiviertel Stunde Selfhtml Studium im Javascript-Bereich, habe ich die Fehler gefunden (hatte bis gerade eben bei Javascript nur mit Event-Handler zu tun gehabt.) :D
Also 1. bei
window.open('preview.php?'+s, 'Preview', 'toolbar=no,location=no,directories=no,statusbar=no,menubar=no,scrollbars=no,scrolls=no,resizable=no
ist mir durchs kopieren ein Zeilenumbruch reingekommen, den der Browser nicht Verstanden hat...
und 2.
var i = document.form[0].length; //auslesen aller elemente im form
var s="";
for(var x = 0; x<i; x++)
{
if(x == 0)
{
s = s + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
else
{
s = s + "&" + document.form[0].elements[x].name + "=" + document.form[0].elements[x].value +"";
}
musste es document.forms[0].length heissen, da entweder mit forms[0] das 1. Formular gemeint ist oder man gibt nur den Formularnamen ein, genauso auch bei den if-Abfragen, bei denen musste es auch jeweils "forms" heissen.
Ansonsten Funktioniert das wunderprächtig.
Nochmals vielen Dank und gut Nacht
Presssack
|
-
- |