php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-03-2009, 08:39
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Form-Übergabe nach window.open funktioniert nicht

Hallo,

grüble hier über eine Fehlfunktion und komme nicht dahinter. Es wird ein Form dargestellt in dem der User 2 Datumswerte auswählen soll die dann an eine Seite in einem neuen Fenster übergeben werden sollen. Diese Seite liegt in einer Subdomain (vielleicht ist da der Hund begraben, wüsste aber nicht wieso). Hier der relevante Auszug aus dem Code:

<td rowspan="5" background="../de/image_de/anfrage2.gif" style="padding:2px">
<div align="center">
<form action="https://booking.arnia.at/de/y2.php" method="post" enctype="multipart/form-data" name="form1">
<fieldset class="anfrage">
<legend>Ihr Anreisetag</legend>
<select name="vond">
<?php
$ret = time();
$ret = $ret + 86400;
$tag = gmdate("j", $ret);
$monat = gmdate("n", $ret);
$jahr = gmdate("Y", $ret);
for ($var = 1; $var <= 31; $var++) {
if ($var != $tag) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
<select name="vonm">
<?php
for ($var = 1; $var <= 12; $var++) {
if ($var != $monat) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
<select name="vony">
<?php
$ret = time();
$jahr = gmdate("Y", $ret);
$bisjahr = $jahr + 2;
for ($var = $jahr; $var <= $bisjahr; $var++) {
if ($var != $jahr) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
</fieldset>
<fieldset class="anfrage">
<legend>Ihr Abreisetag</legend>
<select name="bisd">
<?php
$ret = time();
$ret = $ret + 172800;
$tag = gmdate("j", $ret);
$monat = gmdate("n", $ret);
$jahr = gmdate("Y", $ret);
for ($var = 1; $var <= 31; $var++) {
if ($var != $tag) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
<select name="bism">
<?php
for ($var = 1; $var <= 12; $var++) {
if ($var != $monat) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
<select name="bisy">
<?php
$ret = time();
$jahr = gmdate("Y", $ret);
$bisjahr = $jahr + 2;
for ($var = $jahr; $var <= $bisjahr; $var++) {
if ($var != $jahr) {
echo "<option value=" . $var . ">" . $var . "</option>\n";
} else {
echo "<option value=" . $var . " selected>" . $var . "</option>\n";
}
}
?>
</select>
</fieldset>
<input name="button" type="submit" class="weiterbutton" id="button" value="Jetzt Anfragen" onclick="zianfrage(this.href); return false" />
</form></div></td>


Natürlich habe ich im head das Skript:
<script type="text/javascript">
function zianfrage (Adresse) {
MeinFenster = window.open(Adresse, "Anfrageassistent", "width=700,height=600,left=200,top=100,location=no");
MeinFenster.focus();
}
</script>


Hat irgendwer eine Idee oder nen Tipp für mich?

Danke
Gruß
Alexander
Mit Zitat antworten
  #2 (permalink)  
Alt 23-03-2009, 09:09
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. Regel lesen und befolgen: http://www.php-resource.de/forum/sho...threadid=50455 Danke.

2. Der Button hat kein href-Attribut, also was soll denn das mit this.href als Übergabewert?

3. So wie du das Popup öffnest, wird überhaupt keine Form-Element übergeben.
Mit Zitat antworten
  #3 (permalink)  
Alt 23-03-2009, 09:54
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ad 1)
Auf gut deutsch ich setze die PHP Anfang und Endtags vor und am Ende des Codes auch wenn html Elemente enthalten sind?

ad 2)
Ja klar - hatte die Funktion schon in Verwendung mit a href und dann nur kopiert, kann somit hier nicht gehen, sollte aber so behoben sein:
PHP-Code:
<script type="text/javascript">
function 
zianfrage (Adresse) {
  
MeinFenster window.open("https://booking.arnia.at/de/y2.php""Anfrageassistent""width=700,height=600,left=200,top=100,location=no");
  
MeinFenster.focus();
}
</script> 
ad 3)
Aber wie soll ich das Fenster sonst öffnen wenn nicht mit window.open()?

Gruß
Alexander
Mit Zitat antworten
  #4 (permalink)  
Alt 23-03-2009, 10:36
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ah72103

ad 3)
Aber wie soll ich das Fenster sonst öffnen wenn nicht mit window.open()?
Fenster zunächst ohne Ziel öffnen, anschließend das Formular mit target in das neue Fenster senden.
Mit Zitat antworten
  #5 (permalink)  
Alt 23-03-2009, 12:04
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also ich glaub ich steh auf der Leitung:

Wenn ich Dich recht verstehe dann sollte das JS-Skript dann so aussehen:

PHP-Code:
<script type="text/javascript">
function 
zianfrage (Adresse) {
  
MeinFenster window.open("https://booking.arnia.at/de/y2.php""Anfrageassistent""width=700,height=600,left=200,top=100,location=no");
  
MeinFenster.focus();
}
</script> 
wobei der erste Parameter auch "" sein kann, richtig?

und der Form Aufruf sollte so aussehen:
PHP-Code:
<form action="https://booking.arnia.at/de/y2.php" target="Anfrageassistent" method="post" enctype="multipart/form-data" name="form1"
Wenn ich das so mache bekomme ich wunderbar das neue Fenster mit der richtigen URL aber dort habe ich keine $_POST Variablen zum Auswerten.

Jetzt hätte ich in einem anderen Threat einen Hinweis gefunden im Form Aufruf noch ein onsubmit Event einzubinden (in meinem Fall onsubmit='submitForm(document.form1); return false;'), aber auch mit der Methode bekomme ich keine Daten übergeben.

Gruß
Alexander
Mit Zitat antworten
  #6 (permalink)  
Alt 23-03-2009, 12:17
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Weißt du denn überhaupt was return false; in:

1. onsubmit der Form oder
2. onclick des Buttons

bewirkt? Richtig, es sendet nichts. Also, wenn du die Verarbeitung im Popup haben willst, musst du die Formelementinhalte per JS auslesen und per JS im Popup an dem Server senden.
Mit Zitat antworten
  #7 (permalink)  
Alt 23-03-2009, 13:00
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

OK ich geb zu dafür reicht dann mein rudimentäres JS Wissen nicht wirklich aus.

Ich war immer der Meinung dass return false "nur" bewirkt dass der Focus nicht zum "alten" Fenster dass den Aufruf startet zurückspringt.

Ein Auslesen der Daten mit JS krieg ich nicht hin (man muss seine Grenzen kennen), also muss ich mir irgendeine andere Lösung einfallen lassen um die Sache mit php zu umschiffen.

Gruß
Alexander
Mit Zitat antworten
  #8 (permalink)  
Alt 23-03-2009, 15:01
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit Hilfe eines 7 Jahre alten Threads habe ich jetzt eine Lösung die auch sehr einfach ist. Für alle die irgendwann mal eine derartige Lösung suchen:

Im Head die JS Funktion deklarieren:
PHP-Code:
<script language="javascript">
function 
zianfrage() {
vond document.form1.vond.value;
vonm document.form1.vonm.value;
vony document.form1.vony.value;
bisd document.form1.bisd.value;
bism document.form1.bism.value;
bisy document.form1.bisy.value;
window.open('https://booking.arnia.at/de/y2b.php?vond='+escape(vond)+'&vonm='+escape(vonm)+'&vony='+escape(vony)+'&bisd='+escape(bisd)+'&bism='+escape(bism)+'&bisy='+escape(bisy),'Anfrageassistent','toolbar=no, location=no, directories=no, menubar=no, width=700, height=600, top=100, left=200');
return 
false; }
</script> 
form1 ist der Name meines Formulars im document; vonm, vond, etc. sind die 6 Variablen die ich über Select auswählen lasse (kann natürlich jeder Formularfeldtyp sein).

Der Form-Tag lautet einfach nur:
PHP-Code:
<form name="form1"
und der Submit sieht so aus:
PHP-Code:
<input name="button" type="submit" class="weiterbutton" value="Jetzt Anfragen" onClick="return zianfrage();" /> 
Einziger Nachteil ist, dass die Daten mittels GET übergeben werden aber solange es nicht ewig lange Datenmengen sind und man halt die auswertende Seite entsprechend von $_POST auf $_GET umbaut geht das schon.

Gruß
Alexander
Mit Zitat antworten
  #9 (permalink)  
Alt 23-03-2009, 16:16
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

Öh, ging das nicht mit

window.open('...', Anfrageassistent' [...] )

<form action="..." target="Anfrageassistent"> ?

Kann mich aber auch täuschen...
Mit Zitat antworten
  #10 (permalink)  
Alt 23-03-2009, 17:03
ah72103
 Newbie
Links : Onlinestatus : ah72103 ist offline
Registriert seit: Sep 2002
Ort: Wien
Beiträge: 68
ah72103 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dachte ich auch, aber mehrere Versuche mit diesem Prinzip schlugen fehl. Es wurden nie die Daten aus dem Formular mit übergeben.

Nach Hinweis von asp2php dass ich jedenfalls die Daten im neuen Fenster mit JS verarbeiten muss habe ich mich auf die Suche gemacht, probiert und bin zu diesem Ergebnis gekommen.

Gruß
Alexander
Mit Zitat antworten
  #11 (permalink)  
Alt 23-03-2009, 17:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ah72103
Dachte ich auch, aber mehrere Versuche mit diesem Prinzip schlugen fehl. Es wurden nie die Daten aus dem Formular mit übergeben.
Natürlich, weil du in einem gezeigten Versuch ja auch kein "leeres" Fenster geöffnet hast, sondern gleich das Script, welches die Formulardaten auswerten soll, als Inhaltsadresse für das neue Fenster angegeben hast - das wird dann erst mal per GET angefordert, und erhält deshalb keine POST-Daten.


window.open("about:blank", "fenstername", ...)

<form action="..." target="fenstername" method="post">

- das sollte so eigentlich funktionieren.

(Ggf. das Abschicken des Formulars noch an die "Rückkehr" des window.open-Aufrufes binden, bzw. mit einem kleinen Timeout versehen, damit der Browser auch Zeit hat, das Fensterobjekt erst mal zu generieren.)



Und das nächste Mal brichst du deinen Code bitte wirklich um, anstatt ihn einfach nur unlesbar klein, aber immer noch überbreit zu formatieren!
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:56 Uhr.