TheVoid: Addressieren von Formular-Element aus Iframe heraus.

Hallo,

ich bin ein Anfänger im JavaScript Bereich und habe ein Problem. Ich habe ein Fenster, das ein Formular enthält. Innerhalb des <form...> Bereichs ist ein Iframe definiert. Dieses Iframe enthält eine Art Kalender. Die verschiedenen Tage eines Monats werden hier als Klick Buttons ausgegeben.

<input type="button" class="tag" value="" . $tag ."" name="" . $tag ."" onclick="top.document.form.getElementByName("zeit").value=" . $wochentag .", " . $tag .". " . $monat ." " . $jahr ."'" />.

Wenn ich auf den Button klicke, soll der value eines inputs im Formular des ersten Elements geändert werden. Hier der Code des inputs:

<input class="zeit" name="zeit" type="text" readonly="readonly" value="Termin auswählen" />.

Mit der momentanen Addressierung in onclick, funktioniert es nicht. Wie kann ich das Formularelement korrekt addressieren?

Vielen Dank für eure Hilfe,
Void

  1. Moin

    es gibt kein

    getElementByName

    Gruß
    rfb

    --
    Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
    (Galileo Galilei)
    1. Moin

      es gibt kein

      getElementByName

      Gruß
      rfb

      Ok, danke. Wie muss es dann korrekt lauten?

      onclick="top.document.forms.zeit.value=" . $wochentag .", " . $tag .". " . $monat ." " . $jahr ."'" <-- funktioniert nicht.

      Grüße,
      Void

      1. Hallo TheVoid,

        Dein Problem hat doch mit Javascript zu tun, dann poste auch bitte den HTML-, bzw. Javascript-Code, kein PHP.

        Gruß,

        Dieter

        1. Hallo TheVoid,

          Dein Problem hat doch mit Javascript zu tun, dann poste auch bitte den HTML-, bzw. Javascript-Code, kein PHP.

          Gruß,

          Dieter

          Hallo Dieter,

          Ok, ich werds mal versuchen, ist nur ein wenig verschachtelt...
          also hier der Code, der "Eltern"-Datei:

          <form action="index.php?show=4" name="terminvergabe" method="post">
          <!-- unwichtiger Anfang -->
          Welche Art der Untersuchung?<br />
          <select size="5" name="untersuchung[]" multiple><option value="0">Besprechung</option><option value="7">Blutentahme</option><option value="3">Ultraschall der Bauchorgane</option><option value="4">Ultraschall des Herzens</option><option value="5">Ultraschall der Halsgefäße</option><option value="6">Ultraschall der Schilddrüse</option><option value="8">EKG</option><option value="9">Belastungs-EKG</option><option value="10">Langzeit-EKG</option><option value="1">Magenspiegelung</option><option value="2">Darmspiegelung</option><option value="11">Langzeitblutdruckmessung</option><option value="12">Gesundheitsuntersuchung</option><option value="13">Krebsvorsoge</option></select><br />
          Mehrere Einträge können durch Halten von "STRG" (Windows) / "Befehlstaste" (Macintosh) und  Klicken ausgewählt werden. <br /><br />

          <!-- hier das Iframe -->
          <iframe src="inc/termin/terminauswahl.php" width="320px" height="260px" name="Terminauswahl" scrolling="no" frameborder="0">Ihr Browser kann leider keine Frames anzeigen. Bitte installieren Sie die Neuste Version ihres Browsers</iframe><br /><br />

          <!-- hier das input, in das der Inhalt aus dem Iframe geschrieben werden soll -->
          <input class="zeit" name="zeit" type="text" readonly="readonly" value="Termin auswählen" /><br /><br />

          <!-- jetzt der restliche murks -->
          Uhrzeit: <select name="uhrzeit" class="breite_select"><option value="0">egal</option><option value="1">8.00 - 10.00 Uhr</option><option value="2">11.00 - 13.00 Uhr</option><option value="3">15.00 - 18.00 Uhr</option></select><br /><br />
          oder <input name="tegal" type="checkbox" value="1" />Termin egal<br />
          <input type="submit" value="Anfrage abschicken!" />
          </form>

          So jetzt hier der Code aus dem Iframe:
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                 "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <title>Termin auswahl Tabelle</title>
          <link rel="stylesheet" type="text/css" href="../../styles.css"
          </head>
          <body style="background-color:#D3E1F4">
          <form name="kalender">
          <input type="button" class="tag" value="2" name="2" onclick="top.document.forms.zeit.value='Dienstag, 2. Juli 2007'" />
          </form>
          </body>
          </html>

          Der value des Buttons wird über PHP errechnet und eingefügt.

          1. Hallo TheVoid,

            <input type="button" class="tag" value="2" name="2" onclick="top.document.forms.zeit.value='Dienstag, 2. Juli 2007'" />

            forms ist eine Collection aus allen Formularen eines Dokuments, forms[0] waere eine Moeglichkeit, dein Problem zu loesen. Wie man Elemente in Formularem anspricht, findest du hier:
            http://de.selfhtml.org/javascript/objekte/forms.htm

            Du solltest dir auch angewoehnen, deinen Code, egal ob PHP, CSS, Javascript oder HTML vernuenftig zu formatieren, damit er lesbar wird:

            <select name="uhrzeit" class="breite_select">
                <option value="0">egal</option>
                <option value="1">8.00 - 10.00 Uhr</option>
                <option value="2">11.00 - 13.00 Uhr</option>
                <option value="3">15.00 - 18.00 Uhr</option>
              </select>

            Gruß,

            Dieter

            1. Vielen Dank für die schnelle Hilfe!!

              Grüße,
              Void

          2. Moin

            Ihr Browser kann leider keine Frames anzeigen. Bitte installieren Sie die Neuste Version ihres Browsers</iframe><br /><br />

            ist einer der blödesten Sprüche die im Netz zu finden sind. An diese Stelle gehört sinnvollererweise ein Link zu der gerade nicht erreichbaren Seite. In deinem speziellen Fall, wo die eigeframte Seite eher verzichtbar erscheint, besser gar nix als dieser Spruch.
            Mein Opera, neueste Version, zeigt übrigens IFrames einfach voreinstellungsgemäß nicht an, da hilft auch updaten nix.

            Gruß
            rfb

            --
            Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
            (Galileo Galilei)