Monday, November 08, 2010 at 12:02 AM.
system.verbs.builtins.betty.macros.handleForm
<<http://www.scripting.com/frontier5/betty/apps/remoteAdmin.html local (htmltext = ""); on add (s) { htmltext = htmltext + s}; local (adrparent = parentOf (html.data.adrpagetable^.adrobject^)); local (adrdata = @adrparent^.["#data"]); if not defined (adrdata^) { new (tableType, adrdata)}; adrdata^.params = html.data.adrpagetable^; local (adrdoctree = @adrdata^.doctree); if html.data.adrpagetable^.method == "POST" { local (request = html.data.adrpagetable^.requestBody); local (i, ctfields = string.countFields (request, '&'), s); for i = 1 to ctfields { s = string.nthField (request, '&', i); //something like 2=UserLand+Software try { local (ixdoctree = number (string.nthField (s, '=', 1))); local (valdoctree = string.urlDecode (string.nthField (s, '=', 2))); valdoctree = string.replaceAll (valdoctree, "\"", ""); valdoctree = string.replaceAll (valdoctree, "<", ""); valdoctree = string.replaceAll (valdoctree, ">", ""); valdoctree = string.replaceAll (valdoctree, "{", ""); valdoctree = string.replaceAll (valdoctree, "}", ""); adrdoctree^ [ixdoctree].adr^ = valdoctree} else { add ("<b>" + tryError + "</b>")}}}; bundle { //build the forms on oneForm (adritem, itemnum) { add ("\t"); add ("<!-- " + adrItem^.adr + " -->"); add ("<b>" + adritem^.prompt + "</b><br>"); add ("<input name=\"" + itemnum + "\" value=\"" + adrItem^.adr^ + "\" size=30>"); add ("<p>\r")}; local (i, ct = sizeof (adrdoctree^)); add ("<form method=\"POST\" action=\"form.wsf\">\r"); for i = 1 to ct { oneForm (@adrdoctree^ [i], i)}; add ("\t<input type=submit value=\"Submit\">\r"); add ("\t</form>\r")}; return (htmltext)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.