r7096: added support for select lists in forms
authorAndrew Tridgell <tridge@samba.org>
Mon, 30 May 2005 08:50:24 +0000 (08:50 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:17:15 +0000 (13:17 -0500)
(This used to be commit 33d21d35feaa0f7f9d4067e90495ca19374cea78)

swat/esptest/formtest.esp
swat/scripting/common.js

index 6dd1f91..481217d 100644 (file)
@@ -1,14 +1,21 @@
 <% page_header("columns", "ESP Form Test"); %>
 
 <%
-var f = Form("FormTest", 2, 2);
+var f = Form("FormTest", 3, 2);
 f.element[0].label = "First Name";
 f.element[0].name  = "firstName";
+f.element[0].value = form['firstName'];
 f.element[1].label = "Last Name";
 f.element[1].name  = "lastName";
+f.element[1].value = form['lastName'];
+f.element[2].label = "Color";
+f.element[2].type  = "select";
+f.element[2].list  = new Array("Red", "Green", "Blue", "Yellow");
+f.element[2].value = form['Color'];
 f.submit[0] = "OK";
 f.submit[1] = "Cancel";
 
+printVars(f);
 display_form(f);
 
 <%
index d9e3b56..8396a3a 100644 (file)
@@ -121,7 +121,7 @@ function Form(name, num_elements, num_submits)
     f.submit        = an array of submit labels
     f.element[i].label = element label
     f.element[i].name  = element name (defaults to label)
-    f.element[i].type  = element type
+    f.element[i].type  = element type (defaults to text)
     f.element[i].value = current value (optional, defaults to "")
  */
 function display_form(f) {
@@ -139,13 +139,24 @@ function display_form(f) {
                }
                write("<tr>");
                write("<td>" + e.label + "</td>");
-               write('<td><input name="' + e.name + '" type="' + 
-                     e.type + '" value="' + e.value + '"></td>\n');
+               if (e.type == "select") {
+                       write('<td><select name="' + e.name + '">\n');
+                       for (s in e.list) {
+                               if (e.value == e.list[s]) {
+                                       write('<option selected=selected>' + e.list[s] + '</option>\n');
+                               } else {
+                                       write('<option>' + e.list[s] + '</option>\n');
+                               }
+                       }
+                       write('</select></td>\n');
+               } else {
+                       write('<td><input name="' + e.name + '" type="' + 
+                             e.type + '" value="' + e.value + '"></td>\n');
+               }
        }
        write("</table>\n");
        for (i in f.submit) {
-               write('<input name="' + f.submit[i] + 
-                     '" type="submit" value="' + f.submit[i] + '">\n');
+               write('<input name="submit" type="submit" value="' + f.submit[i] + '">\n');
        }
        write("</form>\n");
 }