Formulardaten übergeben, Daten hinzufügen und dann abschicken
Jule
- javascript
0 Fabian Transchel0 Jule0 Antje Hofmann0 Jule0 Antje Hofmann0 Jule
Der Sonntag ist viel zu schnell rum und ich komme einfach nicht weiter. Folgendes:
Ich habe in diesem Forum ein JavaScript gefunden mit dem ich Formulardaten an eine andere html-seite übergeben kann. (http://selfaktuell.teamone.de/artikel/javascript/wertuebergabe/index.htm)
In meinem Fall ist das die Adresse einer Person. Das klappt. Jetzt geht das Formular auf der zweiten html-Seite jedoch weiter (oben steht die jeweilige Adresse, die übergeben wurde) und es kommen neue Formulardaten dazu. Passt auch. Wenn ich jedoch am ende dieser Seite einen submit-button einbaue, der die Daten an ein cgi-Skript verschicken soll, dann werden zwar die daten der aktuellen html-Seite verarbeitet und verschickt, doch die Formulardaten, die ich von der anderen Seite übergeben hatte, sind nicht dabei.
Hat jemand eine Idee oder kennt ein Skript bei dem die Daten erhalten bleiben? Ich bin kein Fachmann und hoffe auf Fachleute. Danke schön!
nabend erstmal.
ich habe zwei ideen, wie das gehen würde:
a), die für dich wahrscheinlich einfachere:
du führst eine string-addition durch. ganz einfach. ich kenne den artikel, den du meinst und denke, dass du statt eines strings einfach einen array nehmen solltest.
da kannst du dann die neuen daten drannhängen und (theoretisch) müsste des olle CGI dann alle Daten bekommen.
b), die ich bevorzuge, weil es wesentlich einfacher ist.
wertübergabe per php. ist natürlich quatsch, wenn du kein php kannst oder dein server nicht. aber ich halte es für wesenlich einfacher, weil man dann auch wesentlich dynamischer mit den daten umgehen kann. (IMHO ist CGI von PHP 4.x überholt)
Fabian
PS: hoffe, ich hab mich einigermaßen verständlich ausgedrückt ;-)
Hallo Fabian,
sorry, aber da komme ich nicht ganz mit - immer der Ärger mit diesen Anfängern! Wühle mich seit einer weiteren Stunde durch, aber ich komme nicht weiter, ... die letztendliche Übergabe an das cgi funktioniert nicht (in meiner email sind die daten jeweils nicht enthalten). vielleicht hast du ja noch ein "umgesetzte" idee. danke.
der form-tag der ersten seite sieht so aus:
<form action ="anm_beratung.html" method="GET" target="_self">
und hier der Code der zweiten seite:
<html>
<head>
<title>Anmeldung</title>
<script language="javascript" type="text/javascript">
<!--
var formular = new Array(0);
decode();
function decode()
{
var url = window.location.search;
if (url != "")
{
url = url.substring(1,url.length);
liste = url.split("&");
for (i=0;i<=liste.length-1;i++)
{
temp = liste[i].split
formular.splice(formular.length,2,temp[0],temp[1]);
}
for (i=0;i<=formular.length-1;i++)
{
formular[i] = formular[i].replace(/+/g," ");
formular[i] = unescape(formular[i]);
}
}
}
//-->
</script>
</head>
<body>
<script>
<!--
for (var i=0;i<formular.length;i++)
{
document.write("<tr><td>" + formular[i] + "</td>");
document.write("<td><tt>" + formular[++i] + "</tt>");
}
//-->
</script>
</body>
</HTML>
Hallo Jule
<script>
<!--
for (var i=0;i<formular.length;i++)
{
document.write("<tr><td>" + formular[i] + "</td>");
document.write("<td><tt>" + formular[++i] + "</tt>");
}
//-->
</script>
Hier schreibst du die Inhalte nur in das Dokument, jedoch nicht in das aktuelle Formular. Deshalb werden die Daten nicht weitergereicht.
Du solltest zusätzlich zur Textausgabe hidden-Felder setzten, welche die entsprechenden Werte beinhalten.
Eine Möglichkeit wäre:
document.write('<tr><td>' + formular[i] + '<input type="hidden" name="feld'+i+'" value="'+ formular[i] +'"></td>');
Viele Grüße
Antje
Hallo Antje,
Eine Möglichkeit wäre:
document.write('<tr><td>' + formular[i] + '<input type="hidden" name="feld'+i+'" value="'+ formular[i] +'"></td>');
Super! Das klappt tatsächlich und es kommen die gesamten Werte per mail bei mir an. Danke schön. Trotzdem muss ich noch zwei Fragen anhängen, vielleicht hast du ja auch dazu noch eine Lösung?
1. Wie geht es, damit Feldname und der jeweilige Eintrag nebeneinander und nicht untereinander stehen? z.B. also Name: Jule Wann immer ich mit den Tabellentags spiele bekomme ich Fehlermeldungen.
2. Ich bekomme zusätzlich zu den gewollten Werten noch Felder namens x und y mit jeweils irgendwelchen Zahlenwerten geliefert. Diese habe ich im Formular jedoch gar nicht definiert. Wie kann denn das sein?
Wäre dir nochmals dankbar für eine Lösung.
Hallo Jule
Eine Möglichkeit wäre:
document.write('<tr><td>' + formular[i] + '<input type="hidden" name="feld'+i+'" value="'+ formular[i] +'"></td>');
- Wie geht es, damit Feldname und der jeweilige Eintrag nebeneinander und nicht untereinander stehen? z.B. also Name: Jule Wann immer ich mit den Tabellentags spiele bekomme ich Fehlermeldungen.
Versuche mal folgendes:
document.write('<tr><td>'+Feldname+'</td><td>' + formular[i] + '<input type="hidden" name="feld'+i+'" value="'+ formular[i] +'"></td>');
- Ich bekomme zusätzlich zu den gewollten Werten noch Felder namens x und y mit jeweils irgendwelchen Zahlenwerten geliefert. Diese habe ich im Formular jedoch gar nicht definiert. Wie kann denn das sein?
Du verwendest einen grafischen Absendebutton. Klickt ein Anwender auf diesen, so werden an den Server die Klickkoordinaten übermittelt. Wird z.B. x=20 und y=30 übermittelt, so hat der Nutzer 20px vom linken Bildrand und 30px vom oberen Bildrand weg auf das Bild geklickt.
Viele Grüße
Antje
Hallo Antje,
klappt zwar noch nicht mit der Ausgabe in einer Zeile, aber ich sehe wie man damit experimentiert und werde testen.
vielen dank für die ganzen infos!
Gruß Jule