peter: document.variable geht nicht

Hallo!

Ich hänge an folgendem Problem nun schon 2 Tage:

<script>
var change = new Image();
change.src = "./images/picbox_dark.gif";
</script>

function changetext(pic) {
document.pic.src = change.src;
}

PHP-Code bei einem Bild:
while(list($filename, $title, $text) = mysql_fetch_row($sql)){
$picbox = "picbox".$i;
<img src="./images/picbox_light.gif" name="picbox".$i."" onMouseOver="changetext('".$picbox."')"">

$i++;
}
---------
Problem: In der Funktion changetext wird das "pic" nicht als Variable erkannt. Sie wird aber richtig übergeben, das habe ich getestet. Wenn ich zb. in die Funktion document.picbox1.src = change.src; schreibe dann funktioniert es. D.h. ganz einfach nur die Variable "pic" wird in dem document.pic.src = change.src; einfach nicht erkannt.

Was mache ich falsch??

Vielen Dank für die hoffentlich kommenden Lösungen,
LG Peter

  1. Hallo,

    onMouseOver="changetext('".$picbox."')"">

    übergib hier doch mal *this* anstatt $picbox, also das Bild als Objekt statt als String. Und in der Funktion dann: *pic.src*

    Gruß, Andreas

    --
    SELFFORUM - hier werden Sie geholfen,
    auch in Fragen zu richtiges Deutsch
  2. Hallo Andreas !

    document.pic.src = change.src;

    Du referenzierst hier nicht auf die Variable _pic_ sondern auf die Document Instanz _pic_. Genauer: Wenn Du ein Element innerhalb Deines Dokumentes mit der ID _pic_ hättest würde Deine Konstruktion Sinn ergeben, aber auch nicht funktionieren. Du musst dem Namen/ID _pic_ den Wert der Variable _pic_ die Du übergibst zuweisen.

    Schönen Gruß

    Afra

    1. Vielen Dank für eure Hilfe!!
      Ich kann jedoch nicht wirklich viel damit anfangen, wenn ich es richtig verstanden habe müsste es so gehen:

      var pix = pic
      document.pix.src = change.src;

      Somit greife ich doch auf die variable pix zu, die pic 'enthält'. Geht aber trotzdem nicht. Ich verzweifle echt an diesem Problem :-(

      1. Hallo Peter!

        var pix = pic
        document.pix.src = change.src;

        Natürlich nicht. Du machst es schon wieder falsch. Du musst es irgendwie in der Form tun (Ich habe mir mal Deine Funktion geschnappt)

        function changetext(pic) {
            temp=eval("document."+pic+".src");
            temp = change.src;
        }

        So kann das Script auf das Objekt zugreifen.

        Schönen Gruß

        Afra

        1. Hi,

          temp=eval("document."+pic+".src");
              temp = change.src;

          Hmm, erst ist temp dies, dann das? =;-o

          So kann das Script auf das Objekt zugreifen.

          (grusel) Gemäß dem guten alten "eval is evil":

          temp=document.images[pic].src;

          Gruß, Cybaer

          --
          Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
          1. Hallo Cybaer!

            Ich wusste, dass das eval is evil kommen würde. Ich wollte ihm ja nur bei seiner sowieso etwas komsichen Übergabe helfen.

            Dass man natürlich lieber auf Deine Art auf die Bilder zugreifen sollte ist klar. Kam mir beim Runtertippen in dem Moment nur nicht in den Sinn. Ich habe, glaube ich, seit Monaten keine Bildchenwechselscripte benutzt.

            Schönen Gruß

            Afra