Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 238
  • Last Modified:

Multi-section form processing

I am creating a web survey that will display questions a few at a time, changing the few questions based on previous answers. Once all relevent questions have been answered I need to e-mail the results. Is CGI the way to do it?

Jeff
0
jkelly061597
Asked:
jkelly061597
  • 4
  • 3
1 Solution
 
julio011597Commented:
Yes, it could be.

Javascript is another option: you can handle forms and parameters' passing with it; the resulting mail cannot be reachly formatted anyway - yet it would be readable enough.
0
 
jkelly061597Author Commented:
Could you give me a quick JS example?
0
 
julio011597Commented:
Ok, but please give me another 24 hours: i have a little dead-end for tomorrow.
0
[Webinar On Demand] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

 
jkelly061597Author Commented:
No problem...
0
 
julio011597Commented:
Hello back,

i'm sorry to admit i didn't take into account that there are a couple of problems with submitting mail forms: a form with a "mailto:" action does popup a confirm dialog, AND - once the mail has been sent - there's no easy way to automatically redirect the user to a "tank you" page.

You could get rid of the confirm popup, in NN4 only, by signing your script; if you are interested in this, i could give you the additional code needed, but i cannot help on the script signing itself, since i've never done it.

This all is NOT a problem with CGI, and i won't submit an answer unless you explicitely ask, because i myself would not consider this as a *professional* implementation of a mail send - so it seems i just solved to parameter passing task.

This said, you'll find here a couple of sample Html files... any question is welcome.
You might want to maximize the browser window before the cut-and-paste work.

Regards.


--/ [step0.htm] /--
<HTML>
  <HEAD>
    <TITLE>Step 0</TITLE>
    <SCRIPT LANGUAGE="Javascript"><!--
      function toSubmit(aForm) {
        if(!aForm.r0[0].checked && !aForm.r0[1].checked) {
          self.alert("Need a choice");
          return false;
        }
        return true;
      }
    // --></SCRIPT>
  </HEAD>
  <BODY>
    <FORM ACTION="step1.htm" METHOD="GET"
        onSubmit="return toSubmit(this)">
      <INPUT TYPE="radio" NAME="r0" VALUE="0">Radio r0[0]<BR>
      <INPUT TYPE="radio" NAME="r0" VALUE="1">Radio r0[1]<BR>
      <INPUT TYPE="submit" VALUE="Next">
    </FORM>
  </BODY>
</HTML>
--//--

--/ [step1.htm] /--
<HTML>
  <HEAD>
    <TITLE>Step 1</TITLE>
    <SCRIPT LANGUAGE="Javascript"><!--
      var theR0 = getQueryVal("r0", "0"); // theR is a String

      function getQueryVal(aKey, defaultVal) {
        var srch = self.location.search;
        var idxK = srch.indexOf(aKey + "=", 1);

        if(idxK == -1 ||
            (srch[idxK-1] != "?" &&
            srch[idxK-1] != "&"))  // no key
          return defaultVal;

        var idxVS = idxK + aKey.length + 1;
        if(idxVS == srch.length)  // no value
          return defaultVal;

        var idxVE = srch.indexOf("&", idxVS);
        return srch.substring(idxVS, idxVE==-1 ? srch.length : idxVE)
      }

      function toSubmit(aForm) {
        if(!aForm.r1[0].checked && !aForm.r1[1].checked) {
          self.alert("Need a choice");
          return false;
        }
        return true;
      }
    // --></SCRIPT>
  </HEAD>
  <BODY>
    <FORM ACTION="mailto:julio?subject=Web Survey" ENCTYPE="text/plain"
        onSubmit="return toSubmit(this)">
      <SCRIPT LANGUAGE="Javascript"><!--
        document.writeln("<INPUT TYPE=\"hidden\" " +
          "NAME=\"r0\" VALUE=\"" + theR0 + "\">");
        if(theR0 == "1") {
          document.writeln("<INPUT TYPE=\"radio\" " +
            "NAME=\"r1\" VALUE=\"0\">Radio (1-\>) r1[0]<BR>");
          document.writeln("<INPUT TYPE=\"radio\" " +
            "NAME=\"r1\" VALUE=\"1\">Radio (1-\>) r1[1]<BR>");
        }
        else { // default value
          document.writeln("<INPUT TYPE=\"radio\" " +
            "NAME=\"r1\" VALUE=\"0\">Radio (0->) r1[0]<BR>");
          document.writeln("<INPUT TYPE=\"radio\" " +
            "NAME=\"r1\" VALUE=\"1\">Radio (0->) r1[1]<BR>");
        }
      // --></SCRIPT>
      <INPUT TYPE="submit" VALUE="Next">
    </FORM>
  </BODY>
</HTML>
--//--
0
 
julio011597Commented:
Oops! sorry, i had already locked this question... time to bed :)
0
 
jkelly061597Author Commented:
Thanks, I'll play around with it...
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now