Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
[Variablen] Formularvariablen an ein popup geben [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




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.

 
asp2php
01-03-2005, 19:43 
 
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

 
asp2php
01-03-2005, 20:18 
 
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&auml;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&auml;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&ouml;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

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:07 Uhr.