Forum Doku Wiki Blog

Forumsarchiv 2005, September
AJAX: Ganzes Formular senden

archivierte Beiträge lesen

  1. (JAVASCRIPT) AJAX: Ganzes Formular senden von Steffen, 13. 09. 2005, 17:51

AJAX: Ganzes Formular senden

Der folgende Beitrag wurde am 13. 09. 2005, 17:51 Uhr von Steffen veröffentlicht.

Hallo,
ich beschäftige mich gerade einwenig mit AJAX:

Bisher sende ich so an die Zieldatei:

http.open('POST', 'calc.php', true);
http.setRequestHeader('Content-Type',
    'application/x-www-form-urlencoded');
http.send("1=" + document.getElementById('1').value);
//Line 26 mit Fehler: http.send("2=" + document.getElementById('2').value);


Allerdings würde ich jetzt gerne, mehrere Variablen senden. Mit einem zweiten http.send funktioniert es _nicht_.

Firefox sagt mir:
Fehler: uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]"  nsresult: "0x80004005 (NS_ERROR_FAILURE)"  location: "JS frame :: calc.html :: submitForm :: line 26"  data: no]

Wie kann ich also jetzt 2 Werte senden, bzw. am besten gleich ein alle Werte aus einem Formular?

Grüße
Steffen.

AJAX: Teilweise gelöscht, gesamtes Form aulesen

Der folgende Beitrag wurde am 13. 09. 2005, 18:05 Uhr von Steffen veröffentlicht.

Hallo,
hab es teilweise gelöst:

var post = "1=" + document.getElementById('1').value+"&2=" + document.getElementById('2').value;
http.send(post);


Jetzt ist aber die Frage, wie ich alle Felder aus einem Formular auslesen und so übertragen kann.

Grüße
Steffen

AJAX: Ganzes Formular senden

Der folgende Beitrag wurde am 13. 09. 2005, 18:39 Uhr von Thomas Meinike veröffentlicht.

Hallo,

> Wie kann ich also jetzt 2 Werte senden, bzw. am besten gleich ein alle Werte aus einem Formular?

Lies mal XML in the Browser: Submitting forms using AJAX.

MfG, Thomas

AJAX: Ganzes Formular senden

Der folgende Beitrag wurde am 13. 09. 2005, 19:32 Uhr von molily veröffentlicht.

Hallo,

> Lies mal XML in the Browser: Submitting forms using AJAX.

//use single quotes for argument so that the value of
//fobj.elements[i].value is treated as a string not a literal
cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
val = eval(cmd)

Uhh, schlechter Stil.

Funktionen sind Objekte, man kann sie einer Funktion als Parameter übergeben:

function validate (value) {
   ...
}
...
function sub (f) {
   ...
   var str = getFormValues(f, validate);
   ...
}
function getFormValues (fobj, valFunc) {
   ...
   valFunc(fobj.elements[i].value);
   ...
}


<input type="button" value="Request Information" onClick="sub(this.form)">
In Zeiten von unobtrusive JavaScript ziemlich obsolet, es gibt ja onsubmit und DOM.

Des Weiteren ist es nicht so trivial, einen ordentlichen application/x-www-form-urlencoded-kodierten HTTP-Body auf Formularfeldern zusammenzubauen.

str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";

Ist nicht so wunderbar. escape("€") bringt z.B. lustige Dinge wie %u20AC, womit man auf der Serverseite wirklich nichts mit anfangen kann. escape("ö") bringt %F6 (also ISO-8859-1-kodiert), was aber Unsinn ist, wenn man Content-Type: application/x-www-form-urlencoded; charset=UTF-8 senden will.

Siehe mein Beispiel zu Formular in Echtzeit speichern (ist das Forumsarchiv nicht toll? man muss nur suchen).

Mathias

AJAX: Ganzes Formular senden

Der folgende Beitrag wurde am 14. 09. 2005, 22:11 Uhr von MudGuard veröffentlicht.

Hi,

Ergänzend zum bereits gesagten:

>
> document.getElementById('1')
>


darf eigentlich kein Element finden. Denn 1 ist kein gültiger Wert für eine id (die mit einem Buchstaben beginnen _muß_).

cu,
Andreas
--
Warum nennt sich Andreas hier MudGuard?
Schreinerei Waechter

Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4