Sabine: document.open und dynamisch aufgeblendete Bilder

Hallo an alle,

ich habe ein Frage bezueglich dynamisch erzeugten Dokumenten und aufgeblendeten Bildern.

Ich habe einen Fragebogen, diesen werte ich mit Hilfe von Punkten aus und zeige dem User die Auswertung
auf einer neuen Seite ( mit doucument.open) ( je nach Punkteanzahl kriegt er 4 unterschiedliche Bewertungen)

Bis hier ist alles ok. Dadurch dass aber der Fragebogen umfangreich ist moechte man das auf dieser
dynamisch erzeugten Seite (oder wo auch immer) eine Arte grafischer Zusammenfassung geben. also:

frage 1: punkt ( eine grafik)  bei "hoch"
Frage 2: punkt  bei niedrig

hoch    mittel     niedrig    
------- -----------------------------
Frage 1    X

Frage 2                        X

Frage 3    X

um eine " grafische Postionierung" auf einen Blick zu haben...
dabei darf ich aber meine gesammelten Punkte aus dem Fragebogen nicht zu verlieren, da ich darueber auswerte.

diese Tabelle darf keine " ganz-Grafik " sein, da jemand wenn er einer 14 oder 15 Punkte hat, ganz andere Felder angekreuzt haben kann.

Deshalb meine Frage: kann ich ich diesem " dokument.open" eine "if-abfrage" einbinden, in dem ich die Checkboxen abfrage, Variablen vergebe ud je nach ergebnis ein anderes Bild erscheinen lasse?

oder weiss jemand eine Moeglickeit dass anders zu loesen.

Das ganze ist nur auf CD, also es muss alles ohne CGI‚s funktionieren.

Und wenn das unklar ist: welchen Code kann ich beigeben um das ganze verstaendlicher auszudruecken.

Vielen Dank
Sabine

  1. Hallo allerseits!

    Ich haette einen Vorschlag: Fuer fertige Skripte wird eine Kasse eingerichtet, die Haelfte davon bekommt das Selfbrowser-, Selfaktuell-,Selfspezial-, ForumModeratoren-Team, die andere Haelfte geht in die Selfhtml-Spenden-Kasse.

    Viele Gruesse
    Hartmut

    1. Hallo Hartmut,
      des war wahrscheinlich missverstaendlich ausgedrueckt:

      ich moechte wissen ob das ganze generell moeglich ist, weil es bei mir nicht funktioniert.

      Nach deinem Kommetar zu schliessen ist es moeglich und ich bedanke mich vielmals bei dir
      Sabine

      1. ich moechte wissen ob das ganze generell moeglich ist, weil es bei mir nicht funktioniert.

        Hallo Sabine!

        Wenn es denn bei Dir nicht funktioniert, dann zeig einfach mal Deinen Quelltext, dann schauen wir mal.

        Viele Gruesse
        Hartmut

        1. Hallo Hartmut,

          vielen dank fuer die Muehe ...noch dazu an einem Sonnnatg, ich paste mal...wahrscheinlich ein superdummer Fehler weil ich an den Anfaengen des Javascripts-Monstrums stehe <s>

          <html>
          <head>
          <title>Self assesment</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          <script language="JavaScript">
          <!--

          function pruef()
            {
          //Punkte abfragen  
          x=0;
            for (i=0;i<document.fragebogen.elements.length;i++)
            {
            if (document.fragebogen.elements[i].checked==true)
             x=x+document.fragebogen.elements[i].value*1;

          //Bilder
          image1 = new Image();  
          image1.src = "../gif/knopfvor_a.gif"

          abfrageb
          if(document.fragebogen.cb1[0].checked == true)
            {
          image1.src = "../gif/knopfvor.gif";
            }

          if(document.fragebogen.cb1[1].checked == true)
            {
          image1.src = "../gif/knopfback.gif";
            }

          }

          rueckmeldung();
          }

          function rueckmeldung(){

          if( x<=6 )
            {

          document.open();
          document.write("<HTML><BODY><body bgcolor="#FFFFFF" background="../gif/hinterg1.gif"><font face="Courier New, Courier, mono"size="2">Sie haben "+x+" Punkte.<br><br>Test<br><b></font><img src="image1.src"></a></BODY></HTML>");document.close();
            }

          }

          //-->
          </script>
          </head>

          <body bgcolor="#FFFFFF" background="../gif/hinterg1.gif">
          <form onsubmit="return false"; name="fragebogen">
            <table width="100%" border="0" bordercolor="#FFFFFF">
              <tr>
                <td colspan="2" height="80">
                  <p><font face="Courier New, Courier, mono" size="2"><b> </b></font></p>
                </td>
              </tr>
              <tr align="left" valign="top">
                <td width="4%" height="80"><font face="Courier New, Courier, mono" size="2">
                  <input type="checkbox" name="cb1" value="1">
                  <br>
                  </font></td>
                <td width="96%" height="80">
                  <p><font face="Courier New, Courier, mono" size="2"> Frage 1</font></p>
                </td>
              </tr>
              <tr align="left" valign="top">
                <td width="4%" height="80"><font face="Courier New, Courier, mono" size="2">
                  <input type="checkbox" name="cb1" value="2">
                  <br>
                  </font></td>
                <td width="96%" height="80"><font face="Courier New, Courier, mono" size="2">Frage
                  2 </font></td>
              </tr>
            </table>
            <p><a href="#" onClick="pruef();return false;"><img src="../gif/buttonauswerten.gif" name="Image1" border="0"></a></p>

          </form>

          </BODY>
          </HTML>

          ich habe jetzt je nachdem was ich angeklickt habe ein Bild einblenden wollen und zu testen..was solls...es funtioniert nix und ich weiss nicht wo ich was falsch initalisiert, refernziert oder was auch immer gemacht habe.

          Bine

          1. wahrscheinlich ein superdummer Fehler weil ich an den Anfaengen des Javascripts-Monstrums stehe <s>

            Hallo Sabine!

            Fehler sind das beste, was einem passieren kann, denn nirgendwo lernt man schneller als bei der Fehlersuche!

            Hier der Korrigierte Code:<html>
            <head>
            <title>Self assesment</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <script language="JavaScript">
            <!--
            function pruef() {  //Punkte abfragen
                  x=0;
                  for (i=0;i<document.fragebogen.elements.length;i++) {
                       if (document.fragebogen.elements[i].checked==true)
                            x=x+document.fragebogen.elements[i].value*1;
            //Bilder
                       image1 = new Image();
                       image1.src = "../gif/knopfvor_a.gif"

            //abfrageb
                       if(document.fragebogen.cb1[0].checked == true) {
                            image1.src = "../gif/knopfvor.gif";
                       }
                       if(document.fragebogen.cb1[1].checked == true) {
                            image1.src = "../gif/knopfback.gif";
                       }
                  }
                  rueckmeldung(x);
            }
            function rueckmeldung(x){
                  if( x<=6 ){
                        document.open();
                        document.write("<HTML><BODY><body bgcolor="#FFFFFF" background="../gif/hinterg1.gif"><font face="Courier New, Courier, mono"size="2">Sie haben "+x+" Punkte.<br><br>Test<br><b></font><img src="image1.src"></a></BODY></HTML>");
                        document.close();
                  }
            }
            //-->
            </script>
            </head>
            <body bgcolor="#FFFFFF" background="../gif/hinterg1.gif">
            <form name="fragebogen">
              <table width="100%" border="0" bordercolor="#FFFFFF">
                <tr>
                  <td colspan="2" height="80">
                    <p><font face="Courier New, Courier, mono" size="2"><b> </b></font></p>
                  </td>
                </tr>
                <tr align="left" valign="top">
                  <td width="4%" height="80"><font face="Courier New, Courier, mono" size="2">
                    <input type="checkbox" name="cb1" value="1">
                    <br>
                    </font></td>
                  <td width="96%" height="80">
                    <p><font face="Courier New, Courier, mono" size="2"> Frage 1</font></p>
                  </td>
                </tr>
                <tr align="left" valign="top">
                  <td width="4%" height="80"><font face="Courier New, Courier, mono" size="2">
                    <input type="checkbox" name="cb1" value="2">
                    <br>
                    </font></td>
                  <td width="96%" height="80"><font face="Courier New, Courier, mono" size="2">Frage
                    2 </font></td>
                </tr>
              </table>
            <p><a href="#" onClick="pruef();return false;"><img src="../gif/buttonauswerten.gif" name="Image1" border="0"></a></p>
            </form>

            </BODY>
            </HTML>

            Fuer die Zukunft empfehle ich Dir, Deine Codes mit geeigneten Code-Checkern zu pruefen:
            Unter http://www.meybohm.de/htmledit/index.html findest Du einen HTML-Editor mit eingebautem Debugger, ausserdem gibt es dafuer ein zusaetzliches Validator-Plugin.
            Gut ist auch der CSE_Validator: http://www.htmlvalidator.com/lite/

            JavaScript-Macken findest Du ganz gut, wenn Du im im Fehlerfall im Netscape-Navigator in die Adresszeile "javascript:" eintippst.

            Viele Gruesse und viel Spass
            Hartmut

            1. Ohje Hartmut,

              ich muss nochmal "nerven".---

              Die fehlenden Kommentarstriche hab ich bei "aufbereitung" fuer hier ausversehen rausgeschmissen, und die Auswertung hat ja auch schon gefunzt ohne das ich das (x) mit uebergeben hab....aber das Bild? also dieses:

              //Bilder
                         image1 = new Image();
                         image1.src = "../gif/knopfvor_a.gif"

              //abfrageb
                         if(document.fragebogen.cb1[0].checked == true) {
                              image1.src = "1r.gif";
                         }
                         if(document.fragebogen.cb1[1].checked == true) {
                              image1.src = "1b.gif";
                         }
                    }

              und spaeter der Aufruf von:

              <img src="image1.src">

              das tut immer noch nicht...und ich befuerchte da ist noch der dicke Hund begraben..ich weiss nur nicht wie ich ihn finden soll.

              Vielen dank fuer die Muehe und die Adressen
              Sabine

              1. Hallo Sabine!

                Du musst die Image-Quelle ebenfalls mit uebergeben, weil die zweite Funktion nicht weiss, welches Image Du dieser Quelle zugewiesen hattest. Die Zuweisung "img.src = xy.gif" haelt nur fuer die Lebensdauer der ersten Funktion.
                Hier der korrigierte Code-Teil (obwohl es, wie so oft, mehrere Moeglichkeiten gibt, z.B. ueber globale Variablen):

                rueckmeldung(x,image1.src);
                }
                function rueckmeldung(x,y){
                      if( x<=6 ){
                            document.open();
                            document.write("<HTML><BODY><body bgcolor="#FFFFFF" background="../gif/hinterg1.gif"><font face="Courier New, Courier, mono"size="2">Sie haben "+x+" Punkte.<br><br>Test<br><b></font><img src="+y+"></a></BODY></HTML>");
                            document.close();

                Viele Gruesse
                Hartmut

                1. Hallo Hartmut,
                  tausend dank.
                  Jau..jetzt erinner ich mich wieder an lebenszeit von variablen.
                  Einen Wunderschoenen Sonntag noch, und ich paste man das naechste mal besser gleich "Code"...das ist dann auch wenn es umfangreich ist sinniger
                  sabine

                2. Hallo Hartmut,
                  tausend dank.
                  Jau..jetzt erinner ich mich wieder an lebenszeit von variablen.
                  Einen Wunderschoenen Sonntag noch, und ich paste man das naechste mal besser gleich "Code"...das ist dann auch wenn es umfangreich ist sinniger
                  sabine