Markus: Mailform - nur ausgefuellte Felder zum Server

Gibt es eine JavaScript/HTML Loesung fuer folgendes Problem ?
Es sollen nur ausgefuellte Felder einer Mailform mit ueber 50 Feldern an den server geschickt werden. Nicht ausgefuellte Felder sollen nicht im Email erscheinen.

Der Server (mailform.asp) kann nicht modifiziert werden, es muesste also eine Client Solution gefunden werden, das beschraenkt sich auf Java/HTML. Es kann auch kein zusaetzliches Script installiertwerden.

Weiss jemand von euch ein JavaScript ?

  1. Der Server (mailform.asp) kann nicht modifiziert werden, es muesste also eine Client Solution gefunden werden, das beschraenkt sich auf Java/HTML. Es kann auch kein zusaetzliches Script installiertwerden.

    Weiss jemand von euch ein JavaScript ?

    Hm...vielleicht geht es so:
    Du fügst in die Seite einen Frame ein, den man nicht sehen kann. Wenn dann die Form ausgefüllt ist, checkst du alle values und merkst dir alle Felder, die nicht leer sind. Dann schreibst du in die unsichtbare Frame mit document.write() eine neue Form, wo nur die Felder enthalten sind, die vorhin ausgefüllt waren und submittest die.

    Gruß
    Cruz

  2. Der Server (mailform.asp) kann nicht modifiziert werden, es muesste also eine Client Solution gefunden werden

    Ich denke, diese Argumentation ist nicht korrekt.

    Du müßtest auch folgendes tun können:
    a) Formular an ein eigenes CGI-Skript senden
    b) Dort die leeren Felder herausfiltern.
    c) Den Inhalt der verbleibenden Felder per HTTP-Request an den URL der ASP-Anwendung senden - also das tun, was der Browser auch getan hätte.

    1. Der Server (mailform.asp) kann nicht modifiziert werden, es muesste also eine Client Solution gefunden werden

      Ich denke, diese Argumentation ist nicht korrekt.

      Du müßtest auch folgendes tun können:
      a) Formular an ein eigenes CGI-Skript senden
      b) Dort die leeren Felder herausfiltern.
      c) Den Inhalt der verbleibenden Felder per HTTP-Request an den URL der ASP-Anwendung senden - also das tun, was der Browser auch getan hätte.

      hmmm...aber das ist nicht moeglich - ich habe extra geschrieben "ohne ein neues Skript zu installieren"...

  3. Hi
    Ich haette da eine Idee: Du definierst ein weiteres Formular, was nur einen Textarea enthaellt und in einem unsichtbaren div eingebetten ist. Beim versenden werden alle nicht leeren Formularelemente in das Textarea uebertragen. Dann wird "einfach" nur dieses Formular versendet. Hier als Anregung ein kleines Codebeispiel
    <head>
    <title>Test</title>
    <script language="JavaScript">
    <!--
    function testen() {
    if (document.layers)
    doc=document.div1.document.forms[0];
    else
    doc=document.forms[1];
    doc.Inhalt.value="";
    for (i=0;i<document.forms[0].elements.length;i++)
    if (document.forms[0].elements[i].value!=""){
    doc.Inhalt.value+=document.forms[0].elements[i].name;
    doc.Inhalt.value+=": "+document.forms[0].elements[i].value+"\n";
    }
    alert("Abgesendet wurde:\n \n"+doc.Inhalt.value);
    // doc.submit();
    }
    //-->
    </script>
    </head>
    <body>
    <form name="form1" action="" method="" target="">
    Input1: <input type="Text" name="Input1" value="" size="8" maxlength="8"><br>
    Input2: <input type="Text" name="Input2" value="" size="8" maxlength="8"><br>
    Input3: <input type="Text" name="Input3" value="" size="8" maxlength="8"><br>
    Input4: <input type="Text" name="Input4" value="" size="8" maxlength="8"><br>
    Input5: <input type="Text" name="Input5" value="" size="8" maxlength="8"><br>
    </form><br>
    <a href="#" onclick="testen();">Formular absenden</a>
    <div id="div1" style="position:absolute; top:10;left:100;visibility:hidden;">
    <form name="form2" action="" method="" target="">
    <textarea type=hidden name="Inhalt" cols="20" rows="10">
    Hier wird alles reingeschrieben
    </textarea>
    </form></div>
    </body>
    </html>

    viele Gruesse Holger