Avatar billede wwwbolig Nybegynder
16. april 2002 - 11:16 Der er 7 kommentarer og
1 løsning

Returnere XML streng on Submit

Hejsa

Jeg har følgende form:

<form name="form1">
<input type="Text" name="input1">
<input type="Text" name="input2">
<input type="Text" name="input3">
<input type="submit" name="Send" value="Send">
</form>

Når jeg trykker på "Send" vil jeg gerne have returneret værdierne alle input elementerne (ikke input af type=submit) i en XML streng med formatet:

"<input1>værdi</input1><input2>værdi</input2> osv."

Antallet af input elementer kan være varierende, håber der er nogen der kan hjælpe.
Avatar billede jakoba Nybegynder
16. april 2002 - 11:40 #1
oppe i head laver du lidt script:

<script type='text/javascript'> <!-- // lav XML streng

function lavInputNStreng( frm ) {
    var frme = frm.elements;
    var res = "";
    for ( var i=0; i<frme.length; i++ ) {
        if (  frme[i].type == "text"
            && frme[i].name.indexOf("input") == 0 ) {
            res += "<"+frme[i].name+">"+frme[i].value+"</"+frme[i].name+">";
        }
    }
    return res
}; //end lavInputNStreng( Form object ) -> string

// --> </script>

nede i din form laver du en onsubmit= handeler og tilføjer et type=hidden felt:
<form name="form1" onsubmit="this.gemt.value=lavInputNStreng(this);return true;">
  <input type="Text" name="input1">
<input type="Text" name="input2">
<input type="Text" name="input3">
<input type="submit" name="Send" value="Send">
<input type='hidden' name='gemt'>
</form>

efter submit kan du så hive xml strengen ud af $gemt (i php)

mvh JakobA
Avatar billede jakoba Nybegynder
16. april 2002 - 11:44 #2
Upd: det kan være du skal lave dine teextfelter om så der står :
    type="text"      med lille t
istedet for
    type="Text"      med stort T
Avatar billede Slettet bruger
16. april 2002 - 11:49 #3
<html>
<head>
<script>
function tilXML(f) {
xml = "";
for (i = 0; i < f.elements.length; i++) {
if (f.elements[i].name.indexOf("input") != -1) {
navn = f.elements[i].name;
vaerdi = f.elements[i].value;
xml += "<" + navn + ">" + vaerdi + "</" + navn + ">";
}
}
f.xmlstreng.value = xml;
}
</script>
</head>
<body>
<form onSubmit="tilXML(this); return true;">
<input type="hidden" name="xmlstreng" value="">
Input 1: <input type="text" name="input1"><br>
Input 2: <input type="text" name="input2"><br>
Input 3: <input type="text" name="input3"><br>
<input type="submit" name="Send" value="Send">
</form>
</body>
</html>

Det virker, også med et variabelt antal tekstfelter. Du skal bare lige huske, at alle felterne skal hedde "inputX" (X er nummeret i rækkefølgen), og at ingen andre form-elementer må hedder noget med "input".
Den færdige XML-streng kan aflæses i det skjulte felt "xmlstreng".
Avatar billede Slettet bruger
16. april 2002 - 11:50 #4
Nå, havde ikke set dit, Jakoba!
Avatar billede jakoba Nybegynder
16. april 2002 - 12:15 #5
næe, det tager sin tid at skrive sådan en smøre.
men DENNE gang kom jeg først. :-))

mvh JakobA
Avatar billede wwwbolig Nybegynder
16. april 2002 - 16:44 #6
jakoba ->> helt perfekt, takker :-)
Avatar billede wwwbolig Nybegynder
16. april 2002 - 16:46 #7
Jakoba ->> har du foresten nogen erfaring med at kalde Web Services via SOAP fra JavaScript?
Avatar billede jakoba Nybegynder
16. april 2002 - 17:29 #8
Nej, det har jeg aldrig prøvet.  (søge i google...)  men det lyder ret interresant :-)

mvh JakobA
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester