Anfänger bräuchte eure hilfe

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Anfänger bräuchte eure hilfe

    Hallo an alle.

    Ersteinmal guten Tag.
    Ich schlage mich seit längerem mit folgendem Problem herum:

    Ich habe 2 Iframes. Im ersten Iframe wird eine, mittels php ausgelesenen XML-Datei dynamisch mit checkboxen ausgegeben.

    In dem zweiten Iframe wird diese liste ebenfalls ausgegeben aber mit ID's aus der XML-Datei. Und als style.visibility=hidden.
    Nun möchte ich erreichen das, wenn eine Checkbox angeklickt wird, in dem 2.Iframe der entsprechende Eintrag auf style.visibility=visible gesetzt wird.
    Ich habe keine Ahnung wie ich da bewerkstelligen kann.
    Könnt ihr mir helfen?
    Mein Code bisher sieht folgendermassen aus:

    function fuellen ( $frame )
    {
    $ausgabe="";
    $titel = "iframes";
    $output = "";
    $output2 = "";
    $id="";

    $dom = new DOMDocument;
    $dom->load("struktur.xml");
    foreach ( $arr=$dom->getElementsByTagname("node") as $text )
    {
    $bez = $text->getAttribute("linktext");
    $id = $text->getAttribute("id");
    if ( ! empty ( $bez ) && $bez != "" )
    {
    if ( $frame == "iframe1" )
    {
    $output .= '<input type="checkbox" onClick="alert(\'test\');" name="" value="">' . $bez . " " . "<br>";
    #$output .= '<input type="checkbox" onClick="iframe1.getElementById('id').style.visibility='visible';" name="" value="">' . $bez . " " . "<br>";
    }
    else if ( $frame == "iframe2" )
    {
    /*
    if (iframe1.checkbox.checked == true)
    {

    $output2 .='<div>' . $bez . "" . '</div>';
    }
    */
    $output2 .='<div id=" '. $id .' " style="visibility:visible;">'. $id ." ". $bez . '</div>';
    }

    }
    }
    echo $output;
    echo $output2;
    }

    Danke im vorraus
    Zach

  • #2
    PHP-Code:
    parent.iframe1.get... 
    und benutze für so was den firebug, damit kannst du wunderbar js-fehler finden.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Kropff

      Danke für Deine Antwort. Ich habe es nun so versucht zu lösen, aber es klappt nicht.

      Das ist meine function in der HTML-Datei

      <script>

      function machesichtbar ( id )
      {
      this.iframe2.getElementbyId("id").style.visibility = "visible";
      }

      </script>

      Und dies ist mein Eintrag in der Funktion:

      $output .= '<input type="checkbox" onClick="machsichtbar( '. $id .' );" name="" value="">' . $bez . " " . "<br>";

      $output2 .='<div id="'. $id .'" class="unsichtid">'. $id ." ". $bez . '</div>';

      Wenn ich es durch den Firebug laufen lasse, bekomme ich nur die Mledung :

      "Dieses Element hat keine Style-Regeln."
      Und dies wird dann unterlegt:
      "<html xmlns="http://www.w3.org/1999/xhtml">"

      Ich vermute meinen Fehler im Javascript. Aber ich habe keine Ahnung wo der Fehler liegt.

      Danke im vorraus
      zach

      Kommentar


      • #4
        PHP-Code:
         this.iframe2 
        was soll das denn? zeig doch mal deine framestruktur und wie du wo js-code einbindest. und bitte keinen php-code mehr, sondern nur den erzeugten.

        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Hallo Peter

          So sieht der Quelltext aus:

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
          <meta http-equiv="Content-Style-Type" content="text/css" />
          <title>IFrames</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <link rel="stylesheet" type="text/css" href="formate.css" />
          <script>

          function machsichtbar ( id )
          {
          this.iframe2.getElementbyId("id").style.visibility = "visible";
          }

          </script>
          <iframe src="iframe_test.php" width="40%" height="200" name="iframe1">
          </iframe>
          <iframe src="iframe2_test.php" width="40%" height="200" name="iframe2">
          </iframe>
          </body>
          </html>



          Sven

          Kommentar


          • #6
            mal daran gedacht, den js-code in der entsprechenden php-datei einzubinden? und dann mit parent.iframe2 zu arbeiten?

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Du klickst ja in frame1, also muss die JS-Funktion in frame1 implementiert sein! Oder du musst über parent die Funktion ansprechen.

              Mach dich mal schlau über frames http://de.selfhtml.org/javascript/objekte/frames.htm

              Kommentar


              • #8
                Hallo asp2php

                Du siehst mich ratlos.

                Der onClick wird doch im iframe1 ausgeführt.

                Kommentar


                • #9
                  Original geschrieben von zach
                  Der onClick wird doch im iframe1 ausgeführt.
                  und wo wid die js-funktion definiert?

                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Kommentar


                  • #10
                    Die js wir im Iframe1 definiert. Wenn ich dort einen allert() ausführe, dann kommt das Dialogfenster.
                    Aber ich habe das Problem das ich nicht von dem Iframe1 ins Iframe2 gelange. Egal ob ich mit Parent oder mit Top arbeite.

                    Kommentar


                    • #11
                      Original geschrieben von zach
                      Die js wir im Iframe1 definiert.
                      nein, wird sie nicht:
                      PHP-Code:
                      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
                      >
                      <
                      html xmlns="http://www.w3.org/1999/xhtml">
                      <
                      head>
                      <
                      meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
                      <
                      meta http-equiv="Content-Style-Type" content="text/css" />
                      <
                      title>IFrames</title>
                      <
                      meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                      <
                      link rel="stylesheet" type="text/css" href="formate.css" />
                      <
                      script>
                      function 
                      machsichtbar id )
                      {
                      this.iframe2.getElementbyId("id").style.visibility "visible";
                      }

                      </
                      script>
                      <
                      iframe src="iframe_test.php" width="40%" height="200" name="iframe1">
                      </
                      iframe>
                      <
                      iframe src="iframe2_test.php" width="40%" height="200" name="iframe2">
                      </
                      iframe>
                      </
                      body>
                      </
                      html
                      wir reden hier von der funktion!!!

                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Kommentar


                      • #12
                        Ich habe die Function aus der html-seite herausgenommen und in folgende Seite eingefügt:

                        <?php
                        include_once ("funktion.php");
                        ?>

                        <html>
                        <head>
                        <title></title>
                        <script type="text/javascript">

                        function machsichtbar ( element )
                        {
                        //alert(element);
                        parent.iframe1.getElementbyId(element).style.visibility = "visible";
                        }

                        </script>
                        </head>
                        <body>
                        <form>
                        <?php
                        fuellen ( "iframe1" );
                        ?>
                        </form>
                        </body>
                        </html>

                        Kommentar


                        • #13
                          und in folgende Seite eingefügt
                          welche??? und mit welchem ergebnis? solange wir dir die infos stück für stück aus der nase ziehen müssen, wird das nichts. online-beispiel verfügbar?

                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            Ich habe die function in die Seite eingefügt mit der Iframe1 gefüllt wird.
                            Ich habe eine HTML-Seite, eine funktion.php Seite und 2 Seiten mit deren hilfe die Iframes gefüllt werden. Eine für jedes Iframe.
                            Dazu kommt noch eine CSS.

                            Die Function habe ich nach mehren Versuchen in dei Seite eingefügt in der das Iframe1 gefüllt wird. Dort wird sie nach einem Klick auch angesprochen. Mein Problem nun ist wie ich auf das Iframe2 komme und dort die Daten visible zu sezten.

                            Kommentar


                            • #15
                              Original geschrieben von zach
                              Ich habe die function in die Seite eingefügt mit der Iframe1 gefüllt wird
                              und warum steuerst du dann diesen frame an? du willst doch in iframe2? oder?
                              PHP-Code:
                               parent.iframe1.getElementbyId(element).style.visibility "visible"
                              lösung:
                              PHP-Code:
                              parent.iframe2.document.getElementById(element).style.visibility 
                              und es heisst getElementById

                              peter
                              Zuletzt geändert von Kropff; 06.10.2008, 16:08.
                              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                              Meine Seite

                              Kommentar

                              Lädt...
                              X