Formular senden / HTML Lesen
nimble
- javascript
0 molily
Hi
Ich bastle mir ein kleines tool für den privatgebrauch, dass mir ein Fomular übermitteln soll, und ein Antwortfeld ausliest:
var resObjekt = new ActiveXObject("Microsoft.XMLHTTP");
function getXml()
{
resObjekt.open('post', 'xyz.php', false);
resObjekt.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
parms = document.snd.t1.name+'='+document.snd.t1.value;
parms += '&'+document.snd.t2.name+'='+document.snd.t2.value;
parms += '&'+document.snd.t3.name+'='+document.snd.t3.value;
...
resObjekt.send(parms);
document.write(resObjekt.responseText);
alert(resObjekt.responseXML.getElementsByTagName('input')[0].value);
}
Das ding hackt aber an 2-3 orten:
1. jedes Feld auslesen ist schön müsam... kann man nicht das ganze formular übergeben? (document.snd funktioniert jedenfalls nicht :-(
2. Die Antwort ist leider HTML und nicht XML, ich bekomme also einen Fehler desswegen. responseText unterstützt aber das Ansprechen der Felder nicht....
kann mir da jemand helfen?
THX
Hallo,
parms = document.snd.t1.name+'='+document.snd.t1.value;
Du solltest hier encodeURIComponent() auf Feldname und vor allem Feldwert anwenden.
- jedes Feld auslesen ist schön müsam... kann man nicht das ganze formular übergeben? (document.snd funktioniert jedenfalls nicht :-(
Du kannst den Array document.forms.snd.elements mit einer for-Schleife durchlaufen, da stehen alle Formularelemente drin.
- Die Antwort ist leider HTML und nicht XML, ich bekomme also einen Fehler desswegen. responseText unterstützt aber das Ansprechen der Felder nicht....
Liefere die Antwort als XHTML aus (MIME-Typ application/xml). Eine andere Möglichkeit gibt es nicht - zumindest nicht mit XMLHTTPRequest.
Wenn du unbedingt DOM-Zugriff auf die HTML-Antwort brauchst, so leite das Formular einfach in einen unsichtbaren iframe.
Mathias