nixxon: if Abfrage + onLoad + $_GET == möglich?

Hallo!

mein ziel: links in einer zelle meiner tabelle ausführen.

mein code:

<script type="text/javascript">

<?php
 error_reporting(E_ALL);

if(isset($_GET['yeah'])) {
 echo "<BODY onLoad="location.href='".$_GET['yeah']."';return true;">";
 echo "</BODY>";
    } else {
        echo "Nix drin!";
    }
?>
</script>

die variable "yeah" soll eine URL enthalten, und das tut sie auch.

mein problem:

ich glaube das funktioniert so nicht.. Hat jemand eine idee, oder erkennt einen fehler in meinem code?

Bin für jede hilfe dankbar, denn das macht mich bissl mähschugge!

gruß
nixxon

  1. Liebe(r) nixxon,

    mein ziel: links in einer zelle meiner tabelle ausführen.

    was soll das heißen? Soll ein Link "ausgeführt" werden, also eine neue Seite mit der URL eines href-Attributs im Browser geladen werden, oder was?

    <script type="text/javascript">

    <?php
    error_reporting(E_ALL);

    if(isset($_GET['yeah'])) {
    echo "<BODY onLoad="location.href='".$_GET['yeah']."';return true;">";
    echo "</BODY>";
        } else {
            echo "Nix drin!";
        }
    ?>
    </script>

    Da soll also als "Javascript-Datei" der String "<BODY onLoad="location.href='".$_GET['yeah']."';return true;"></BODY>" geladen werden? Das ist kompletter Unfug! Du verwechselst hier gleich mehrfach PHP. das auf dem Server interpretiert wird, und JavaScript, das im Browser ausgeführt wird. Entscheide Dich doch mal, was Du überhaupt willst!

    die variable "yeah" soll eine URL enthalten, und das tut sie auch.

    Na, also! Warum bist Du dann noch nicht zufrieden?

    mein problem:

    ich glaube das funktioniert so nicht..

    Falsch: Dein Problem ist, dass Du nicht weißt, was Du eigentlich wirklich willst!

    Hat jemand eine idee, oder erkennt einen fehler in meinem code?

    Dein Code ist kompletter Unfug, der Fehler liegt in Deinem Gedankenmodell.

    Desweiteren verstehe ich das mit "in einer zelle meiner tabelle" nicht. Verwendest Du eine Tabelle als Layoutmittel? Das solltest Du <http://de.selfhtml.org/css/layouts/einfuehrung.htm@title=anders lösen>!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. die tabelle dient mir tatsächlich als layoutmittel. Da das mit der tabelle soweit auch ganz gut funktioniert, sehe ich (noch) keinen grund auf div umzusteigen. Nur sobald ich das javascript ins spiel bringe tritt ein unerwarteter fehler auf... Nach deiner antwort denke ich nun auch zu wissen warum. Hatte den verdacht aber auch schon bevor ich hier gepostet hab. Denn ich hab das auf die verschiedensten arten versucht zu realisieren aber ohne erfolg.

      Gibts denn eine möglichkeit einen wert einer variablen "auszuführen"? also z.B. ".$_GET['www.eineseite.de']." nicht ausschreiben zu lassen, sondern zu "öffnen"?

      gruß

      1. Liebe(r) nixxon,

        Gibts denn eine möglichkeit einen wert einer variablen "auszuführen"? also z.B. ".$_GET['www.eineseite.de']." nicht ausschreiben zu lassen, sondern zu "öffnen"?

        in Deinem Ausgansposting schreibst Du etwas von "link ausführen". Das sieht dann wohl so aus:
        <a href="http://www.example.org/">ein Link</a>

        Wenn Du eine JavaScript-Funktion ausführen möchtest, dann tu das. Wenn diese eine neue Seite laden soll, dann geht das innerhalb dieser Funktion so:
        window.location.href = "http://www.example.org";

        Wenn das alles Deine Frage nicht beantwortet, dann war meine Vermutung wohl doch richtig, und Du weißt noch nicht genau, was Du eigentlich willst.

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. also... ich gehe jetzt einfach mal davon aus, dass ich mich etwas umständlich ausgedrückt habe.

          1. Ich weiß was ich will! Geht davon einfach mal aus.
          2. Ich suche nach einer möglichkeit, einen link mit einem target auf eine tabelle oder einen div-container zu erstellen. Soweit ich weiß gibts den target-befehl nur für iframes. Das möchte ich nun mit php oder javascript realisieren.
            angefangen habe ich mit:

          in zelle1 stehen meine links:

            
          <a href="?yeah=http://www.meineseite.de">Link beispiel 1</a>  
          <a href="?yeah=http://www.deineseite.de">Link beispiel 2</a>  
          <a href="?yeah=http://www.unsereseite.de">Link beispiel 3</a>  
          
          

          in zelle2 steht dann folgendes:

            
          <?php  
          if(isset($_GET['yeah'])) {  
           echo "".$_GET['yeah']."";  
          } else {  
             echo "bitte einen Link anklicken!";  
          }  
          ?>  
          
          

          soweit, so gut. In zelle2 steht nun die gewünschte seite. Die aber wegen des echo befehls nicht geöffnet wird, sondern eben einfach nur als text dargestellt wird (soweit auch nicht anders zu erwarten).
          Jetzt möchte ich dass diese seite dargestellt wird, wie es unter iframes mit dem "target=iframeX-befehl" möglich ist. (daher dann der versuch das mit einem onLoad von javascript zu realisieren.. der, wie ich es mir schon fast dachte, nicht funktionieren kann.)

          hoffe diesmal war ich verständlicher!?

          gruß
          nixxon

          1. Liebe(r) nixxon,

            1. Ich suche nach einer möglichkeit, einen link mit einem target auf eine tabelle oder einen div-container zu erstellen.

            das ist wirklich sehr schwer zu verstehen, denn es ist erstens kein korrektes Deutsch und zweitens eine Vermischung von technischen Begriffen, die so in keinem technischen Zusammenhang stehen!

            Soweit ich weiß gibts den target-befehl nur für iframes.

            Nein, das gilt auch für andere (z.B. neu geöffnete) Browser-Fenster.

            Das möchte ich nun mit php oder javascript realisieren.

            Warum geht das nicht mir den Mitteln, die HTML zur Verfügung stellt? Wenn Du in einem Dokument an eine bestimmte Stelle "vorspulen" willst, dann <http://de.selfhtml.org/html/verweise/projektintern.htm#anker@title=benutze doch einen Anker>!

            in zelle1 stehen meine links:

            <a href="?yeah=http://www.meineseite.de">Link beispiel 1</a>
            <a href="?yeah=http://www.deineseite.de">Link beispiel 2</a>
            <a href="?yeah=http://www.unsereseite.de">Link beispiel 3</a>

              
            Das ist zwar nicht semantisch, aber bis hierher kann ich Dir folgen.  
              
            
            > in zelle2 steht dann folgendes:  
            > ~~~php
              
            
            > <?php  
            > if(isset($_GET['yeah'])) {  
            >  echo "".$_GET['yeah']."";  
            > } else {  
            >    echo "bitte einen Link anklicken!";  
            > }  
            > ?>  
            > 
            
            

            Das mag für Dich sinnvoll sein, ich verstehe den Sinn hier allerdings nicht. Anscheinend möchtest Du diesen Hinweis ("bitte einen Link anklicken!") einblenden, wenn nicht gerade eine Unterseite angezeigt wird...

            soweit, so gut. In zelle2 steht nun die gewünschte seite.

            Eine Tabellenzelle ist kein <iframe>, und das ist auch gut so! Wenn Du eine Art "Seite in einem Fenster" anzeigen lassen möchtest, dann benutze das dafür notwendige Werkzeug: <iframe>. Wozu sollte das in einer Tabelle stehen? Dazu kommt noch, dass Du in der Tabellenzelle kein ganzes HTML-Dokument hineinschreiben kannst, da es nur einen <body> und ein <html> geben darf!

            Wenn ich Dich jetzt missverstanden haben sollte, dann untersuche bitte noch einmal höchst gründlich Deine Problembeschreibung!

            Die aber wegen des echo befehls nicht geöffnet wird, sondern eben einfach nur als text dargestellt wird (soweit auch nicht anders zu erwarten).

            Das habe ich nur halb verstanden, aber das mit echo ist klar.

            Jetzt möchte ich dass diese seite dargestellt wird, wie es unter iframes mit dem "target=iframeX-befehl" möglich ist. (daher dann der versuch das mit einem onLoad von javascript zu realisieren.. der, wie ich es mir schon fast dachte, nicht funktionieren kann.)

            Im Prinzip frage ich mich, warum eine <iframe>-Lösung für Dich nicht akzeptabel sein soll... Das würde nämlich unter allen Umständen funktionieren, wäre zur Not auch verlinkbar, wenn auch nicht schön.

            Ansonsten schau mal hier: Wie kann ich Teile meiner Webseite auslagern?

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            --
            ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
            1. warum ich nicht auf die simple <iframe> lösung zurück greife? Weil ich blutiger PHP anfänger bin und das in meiner freizeit gerne ändern würde.

              lange rede kurzer sinn! Ich suche nach etwas der art -> Include in den div-Elementen

              vorerst ist damit mein problem auch gelöst. Für den fall dass du eine bessere lösung hast: immer her damit! ;)

              gruß
              (der) nixxon

              1. Hallo

                warum ich nicht auf die simple <iframe> lösung zurück greife? Weil ich blutiger PHP anfänger bin und das in meiner freizeit gerne ändern würde.

                lange rede kurzer sinn! Ich suche nach etwas der art -> Include in den div-Elementen

                Dann benutz das doch, wo ist das Problem? Ich persönlich finde die Lösung zwar alles andere als optimal, ich mag nämlich diese "Ein-Seiten-Seiten" nämlich nicht. Wie man das aufbaut, ist auf der von dir verlinkten Seite allerdings ausführlich beschrieben. Also nochmal: Wo ist das Problem?

                Tschö, Auge

                --
                Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
                (Victor Hugo)
                Veranstaltungsdatenbank Vdb 0.2
                1. ...Wie man das aufbaut, ist auf der von dir verlinkten Seite allerdings ausführlich beschrieben. Also nochmal: Wo ist das Problem?

                  es war ein problem bis ich auf die seite gestoßen bin.. Es gab bis zu meiner auflösung keine sinnvolle lösung für das ursprüngliche problem. Da ich ein netter mensch bin, dacht ich mir: schreibs rein, dann kann der nächste gucken wie ich weiter gekommen bin. ;)

                  PS: "ein-seiten-seiten" find ich auch nicht immer gut, besonders in foren und suchmaschinen ist das nervig. Aber wer sagt denn dass ich meine seite komplett so aufbauen will!? An vielen stellen ist es auch eine angenehme sache, wenn sich nicht noch ein, und noch ein, und noch ein fenster öffnen :P

                  gruß
                  nixxon

                  1. Hallo

                    ...Wie man das aufbaut, ist auf der von dir verlinkten Seite allerdings ausführlich beschrieben. Also nochmal: Wo ist das Problem?

                    es war ein problem bis ich auf die seite gestoßen bin.. Es gab bis zu meiner auflösung keine sinnvolle lösung für das ursprüngliche problem. Da ich ein netter mensch bin, dacht ich mir: schreibs rein, dann kann der nächste gucken wie ich weiter gekommen bin. ;)

                    ok

                    PS: "ein-seiten-seiten" find ich auch nicht immer gut, besonders in foren und suchmaschinen ist das nervig. Aber wer sagt denn dass ich meine seite komplett so aufbauen will!? An vielen stellen ist es auch eine angenehme sache, wenn sich nicht noch ein, und noch ein, und noch ein fenster öffnen :P

                    Warum sollte es das? Die von mir erstellten bzw. betreuten Seiten sind nicht in der Ein-Seiten-Technik erstellt und es wird dennoch kein weiteres Fenster geöffnet.

                    Tschö, Auge

                    --
                    Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
                    (Victor Hugo)
                    Veranstaltungsdatenbank Vdb 0.2
              2. Liebe(r) nixxon,

                Für den fall dass du eine bessere lösung hast: immer her damit! ;)

                aber klar doch!

                Als HTML-Grundgerüst nimmst Du etwas in der Art wie in diesem Archiv-Thread: (DESIGN/LAYOUT) Navigationsmenü von Dennis D. Im Inhaltsdiv könnte man dann Deine Inhalte einbauen.

                Zum Beispiel so: ~~~php <?php // Deine zentrale PHP-Datei (z.B. "index.php")

                $inhalt = "<p>Bitte einen Link aus der Navigation auswählen!</p>";
                /* mögliche einzubindende HTML-Dokumente vordefinieren um
                   Sicherheitsproblemen vorzubeugen (Dateiname ohne Endung): */
                $seiten = array(
                    'impressum',
                    'links',
                    'bla',
                    'blubb'
                );

                // nur registrierte Dateien einbinden
                if (isset($_GET['yeah']) && in_array($_GET['yeah'], $seiten)) {
                    $inhalt = file_get_contents($_GET['yeah'].'.html');
                    // Inhalte aus <body> extrahieren
                    $inhalt = preg_replace('~(?is)^.<body[^>]>(.)</body.$~', '\1', $inhalt;
                }

                $template = file_get_contents("vorlagen-datei.html");

                // jetzt Inhalte in das <div id="inhalt"> einfügen
                $template = preg_replace('~(?is)<div id="inhalt">.*?</div>~', '<div id="inhalt">'.$inhalt.'</div>');

                // alles ausgeben:
                echo $template;
                ?>

                  
                Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
                  
                Felix Riesterer.
                
                -- 
                ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                
          2. Hallo,

            also... ich gehe jetzt einfach mal davon aus, dass ich mich etwas umständlich ausgedrückt habe.

            So ist es.

            1. Ich weiß was ich will! Geht davon einfach mal aus.

            Ok. Jetzt musst du es nur noch verständlich formulieren.

            1. Ich suche nach einer möglichkeit,

            Ok.

            einen link mit einem target auf »»

            Ok.

            eine tabelle oder einen div-container zu erstellen.

            Wie? Das target (deutsch Ziel) für den Link soll eine Tabelle oder ein Div sein?

            Soweit ich weiß gibts den target-befehl nur für iframes.

            target ist kein befehl, sondern ein Attribut des HTML-Elemets <href> (Verweis). Das Verweisziel (im Inhalt des target-Attributs benannt) kann ausser einem iframe auch ein normaler frame oder ein anderes Fenster sein, aber jedenfalls keine Tabelle und auch kein div, da hast du recht.

            Das möchte ich nun mit php oder javascript realisieren.

            Geht nicht, weil: Das Verweisziel kann außer einem iframe auch ein normaler frame oder ein anderes Fenster sein, aber jedenfalls keine Tabelle und auch kein div. Daran kann auch javascript nichts ändern.

            angefangen habe ich mit:

            in zelle1 stehen meine links:

            <a href="?yeah=http://www.meineseite.de">Link beispiel 1</a>
            <a href="?yeah=http://www.deineseite.de">Link beispiel 2</a>
            <a href="?yeah=http://www.unsereseite.de">Link beispiel 3</a>

              
            Was soll das für ein Verweisziel sein, "?yeah=http://www.meineseite.de"? Ein URL beginnt dem Namen des Protokolls, z.B. "http://", aber niemals mit Zeugs wie "?yeah=".  
              
            
            > in zelle2 steht dann folgendes:  
            > ~~~php
              
            
            > <?php  
            > if(isset($_GET['yeah'])) {  
            >  echo "".$_GET['yeah']."";  
            > } else {  
            >    echo "bitte einen Link anklicken!";  
            > }  
            > ?>  
            > 
            
            

            Das kann nicht sein. PHP-Code steht nicht in einer Zelle, sondern wird vom Server ausgeführt.
            In der Zelle soll dann wohl ein Dokument wie http://www.meineseite.de angezeigt werden oder, wenn PHP keine Get-Variable yeah findet, soll "bitte einen Link anklicken!" in der Zelle stehen, stimmt's?

            soweit, so gut.

            Naja.

            In zelle2 steht nun die gewünschte seite.

            Tatsächlich? Wie denn? Längs oder quer oder wird dort nur ihr URL angezeigt?

            Die aber wegen des echo befehls nicht geöffnet wird, sondern eben einfach nur als text dargestellt wird (soweit auch nicht anders zu erwarten).

            Aha, also nur ihr URL wird angezeigt, also z.B. "http://www.meineseite.de", stimmt's?

            Jetzt möchte ich dass diese seite dargestellt wird, wie es unter iframes mit dem "target=iframeX-befehl" möglich ist. (daher dann der versuch das mit einem onLoad von javascript zu realisieren.. der, wie ich es mir schon fast dachte, nicht funktionieren kann.)

            Genau. Das kann nicht funktionieren.

            hoffe diesmal war ich verständlicher!?

            Ich denke ja. Du wolltest uns also folgendes sagen:

            • In einer Tabelle stehen in Zelle1 drei Links, und solange keiner davon angeklickt wurde, steht in Zelle2 der Ausruf "bitte einen Link anklicken!".
            • Wird einer der drei Links angeklickt, dann soll in Zelle2 aber der Inhalt des entsprechende HTML-Dokuments angezeigt werden (anstelle des obigen Ausrufs, also z.B. der Inhalt des Dokuments http://www.meineseite.de, nicht etwa nur der URL selbst), stimmt's?

            Gruß, Don P

            1. ja, ich kann dir auf jedes "stimmts" mit "ja" antworten. Haste denn nun auch eine (alternative) lösung im angebot?

              gruß
              nixxon

          3. hi $name,

            also... ich gehe jetzt einfach mal davon aus, dass ich mich etwas umständlich ausgedrückt habe.

            oh, ja und unnötig kompliziert.

            1. Ich weiß was ich will! Geht davon einfach mal aus.

            in dubio.... ;-)

            1. Ich suche nach einer möglichkeit, einen link mit einem target auf eine tabelle oder einen div-container zu erstellen. Soweit ich weiß gibts den target-befehl nur für iframes. Das möchte ich nun mit php oder javascript realisieren.

            du brauchst kein target (du denkst in frames - laß das besser)-

            angefangen habe ich mit:

            in zelle1 stehen meine links:

            <a href="?yeah=http://www.meineseite.de">Link beispiel 1</a>
            <a href="?yeah=http://www.deineseite.de">Link beispiel 2</a>
            <a href="?yeah=http://www.unsereseite.de">Link beispiel 3</a>

              
            das ist soweit ok  
              
            
            > in zelle2 steht dann folgendes:  
            > ~~~php
              
            
            > <?php  
            > if(isset($_GET['yeah'])) {  
            >  echo "".$_GET['yeah']."";  
            > } else {  
            >    echo "bitte einen Link anklicken!";  
            > }  
            > ?>  
            > 
            
            

            anstat echo entweder include oder require oder readfile (kommt auf die inhalte an

            ich hab das auf einer seite genau so gelößt/gemacht.

            gruss
            shadow

            --
            Programmers don´t die, they GOSUB without RETURN.
            Quelle: unbekannt
            1. du brauchst kein target (du denkst in frames - laß das besser)-

              mein größtes problem! Ich bin total iframe verseucht.. :(

              anstat echo entweder include oder require oder readfile (kommt auf die inhalte an

              Danke!! require u. readfile werde ich mir mal genauer ansehen. Im moment habe ich es mit include gelöst, jedoch gefällt mir der weg noch nicht wirklich...

              ich hab das auf einer seite genau so gelößt/gemacht.

              endlich mal ein positives feedback :)

              gruß
              nixxon

              1. Hallo

                ich hab das auf einer seite genau so gelößt/gemacht.

                Ja, Löß ist ein überaus fruchtbarer Boden. ;-)

                endlich mal ein positives feedback :)

                Nur, weil da jemand versucht, zu erraten, was du gemeint haben könntest? Man, man, man, du bist ja leicht zufrieden zu stellen.

                ... und das bei den wirren Beschreibungen.

                Tschö, Auge

                --
                Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
                (Victor Hugo)
                Veranstaltungsdatenbank Vdb 0.2