Formular per POST an Frameset auf neuer Seite schicken

yahooooo

Mitglied
Hi,

ich habe da mal eine kleine Problemstellung. Es gibt die Website und eine Art Buchungssoftware. Auf allen Seiten der Website gibts ein Anmelde-Formular. Das öffnet beim Abschicken das Formularziel bzw das Script der Buchhungssoftware in einem neuen Fenster (also quasi action="buchung.php").

Schöner wäre es natürlich, wenn der Buchungsprozess im Layout der Website ablaufen würde. Am einfachsten ginge das natürlich in Form eines IFrames. Aber den kann ich ja schlecht auf jeder Seite zeigen.

Gibt es eine Möglichkeit, eine Formular von "Seite A" in ein Script in einem Frame auf "Seite B" zu POSTen, wobei "Seite B" noch nicht vorher geöffnet ist?
 
Hi,

eventuell hilft es, mit Hilfe von open ein Fenster zu öffnen. Dort wird ein Dokument geladen, welches im onload-Event die Felder des Loginformulars ausliest, daraus ein Formular erstellt und dieses in einen enthaltenen iFrame sendet.

Beispiel

Ausgangsdokument:
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form_name" target="_blank" method="post" action="frame.html">
  <input type="text" value="eins, zwei, drei" name="txtTest">
  <input type="password" value="quaese" name="passTest">
  <a href="#" onclick="window.open('frame.html', 'fenster'); return false;">open</a>
</form>
</body>
</html>
Zieldokument (frame.html):
Code:
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
window.onload = function(){
  var objForm = document.createElement("form");
  objForm.target = "iframe_name";
  objForm.method = "post";
  objForm.action = "get_formdata_test.php";

  var objUser = document.createElement("input");
  objUser.type = "text";
  objUser.value = opener.document.form_name.txtTest.value;

  var objUser = (document.all && !window.opera)? document.createElement("<input name=\"txtTest\">")
                                               : document.createElement("input");
  objUser.type = "text";
  objUser.name = "txtTest";
  objUser.value = opener.document.form_name.txtTest.value;

  var objPW = (document.all && !window.opera)? document.createElement("<input name=\"txtTest\">")
                                             : document.createElement("input");
  objPW.type = "text";
  objPW.name = "passTest";
  objPW.value = opener.document.form_name.passTest.value;

  objForm.appendChild(objUser);
  objForm.appendChild(objPW);

  document.getElementsByTagName("body")[0].appendChild(objForm);
  objForm.submit();
  objForm.parentNode.removeChild(objForm);

  document.getElementById("iframe_id").style.display = "block";
}
 //-->
</script>
<body>
  <iframe id="iframe_id" name="iframe_name" style="display: none;" src=""></iframe>
</body>
</html>
Vielleicht hilft dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück