Andreas: PHP-Seite mit Parameterübergabe im onload-Ereignis

Hallo,

Dass PHP serverseitig und Javascript clientseitig abläuft, ist mir klar. Dennoch muss es doch eine Möglichkeit geben, im onload-Ereignis des Body-Tags eine PHP-Seite mit Parameterübergabe zu definieren.

Ich habe mir das so vorgestellt:

<body onload="location='<?php echo 'PHP_seitenaufruf.php?$seite=$nr'?>'">

Kann das so funktionieren ?

Gruss, Andreas

  1. Hallo,

    nein, aber so:

    <body onload="location='<?php echo "PHP_seitenaufruf.php?seite=$nr" ?>'">

    Mit freudlichen Grüßen, NaeZnaL

    1. Hallo NaeZnaL,

      Wunderbar, besten Dank für Deine Hilfe :-))

      Gruss, Andreas

  2. Hi,

    Dass PHP serverseitig und Javascript clientseitig abläuft, ist mir klar. Dennoch muss es doch eine Möglichkeit geben, im onload-Ereignis des Body-Tags eine PHP-Seite mit Parameterübergabe zu definieren.

    nein. Es ist möglich, mittels PHP beliebigen Code zu erzeugen, der für PHP absolut nicht die geringste Bedeutung hat und damit auch bar jedweden eventuell mal clientseitig vorliegenden Kontextes ist.

    Ich habe mir das so vorgestellt:
    [...]<?php echo 'PHP_seitenaufruf.php?$seite=$nr'?>[...]

    Und was erzeugt dies?

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Hallo Andreas,

    mir ist absolut unklar, was Du dort versuchst zu basteln. Du läßt Deine User ein PHP-Script abrufen, welches dann mittels JS zu einem anderen Script weiterleitet. Das ist so ergonomisch, wie erst zu einem Autohaus zu gehen, dort die Antwort zu bekommen, daß sie keine Milch verkaufen, um dann doch zu einem Lebensmittelhändler Deiner Wahl zu müssen.

    Warum muß jeder User erst unnötig Traffic verursachen?
    Auch wenn ich ein Fan von JS bin(!), ist die Weiterleitung über JS ausgesprochener Dummfug (Bsp. Suchmaschinen)!

    Schreibe doch bitte mal, was Du im Eigentlichen vor hast, dann läßt sich sicher eine weitaus effizienteres Lösung finden ;)

    Gruß aus Berlin!
    eddi

    1. Hallo eddi,

      Uffz, in Worte zu fassen, ist nich einfach:

      [1] ******************************

      <?php
        $nr = $_GET["nr"];

      if ($nr == "")
          $nr = 1;
      ?>
      <html>
        <head>
          ...
        </head>
        <body onload="location='<?php echo "PHP_seitenaufruf.php?seite=$nr" ?>'">
          <script language="javascript" type="text/javascript">
            <!--
              ... Ladehinweis über document.write ...
            //-->
          </script>
          <noscript>
            ... Hinweis bei deaktiviertem Javascript ...
          </noscript>
        </body>
      </html>

      [2] ******************************

      <?php
        $seite = $_GET["seite"];

      if ($seite == "")
          $seite = 1;
      ?>
      <html>
        <head>
          <script language="javascript" type="text/javascript">
            <!--
              ... Funktionen zum Scrollen ...
            //-->
          </script>
        </head>
        <body>
          ... Tabellenlayout ...
          ... Ausgabe der Navigation über PHP: fpassthru ...
          ... Tabellenlayout ...
          ... Füllen des eingebetteten Frames über <?php echo"<iframe ... ></iframe>"?>
          ... Tabellenlayout ...
        </body>
      </html>

      [3] ******************************

      Die Navigation erfolgt über Registerreiter, die sich durch Links selber aktualisiert und die anzuzeigende Seite übergibt:

      <a href="PHP_layout_seitenaufruf?nr=2" ... ></a>

      ******************************

      Datei [1] zeigt einen Hinweis an, während die gewünschte Seite geladen wird. Die zu ladende Datei wird über den entsprechenden Parameter übergeben (siehe Datei [3])

      Soweit zu meinem Vorhaben... :o)

      Gruss, Andreas

      1. Re:

        [1] ******************************

        <?php
          $nr = $_GET["nr"];

        if ($nr == "")
            $nr = 1;

        anstatt ->

        ?>
        <html>
          <head>
            ...
          </head>
          <body onload="location='<?php echo "PHP_seitenaufruf.php?seite=$nr" ?>'">
            <script language="javascript" type="text/javascript">
              <!--
                ... Ladehinweis über document.write ...
              //-->
            </script>
            <noscript>
              ... Hinweis bei deaktiviertem Javascript ...
            </noscript>
          </body>
        </html>

        schreibe in in den Scriptbereich des Dokuments:

        include("PHP_seitenaufruf.php");

        und gestallte auf PHP_seitenaufruf.php eine Abfrage nicht nach $_GET['seite'] sondern wie oben nach $_GET['nr'] ( mittels switch() oder if/else die Parameter wieder auflösen), damit hat sich der HTML-Output erübrigt und kann gelöscht werden

        [2] ******************************

        <?php
          $seite = $_GET["seite"];

        if ($seite == "")
            $seite = 1;
        ?>
        <html>
          <head>
            <script language="javascript" type="text/javascript">
              <!--
                ... Funktionen zum Scrollen ...
              //-->
            </script>
          </head>
          <body>
            ... Tabellenlayout ...
            ... Ausgabe der Navigation über PHP: fpassthru ...
            ... Tabellenlayout ...
            ... Füllen des eingebetteten Frames über <?php echo"<iframe ... ></iframe>"?>

        würde ich nicht alles durch den Parser jagen sondern nur <iframe src="<?php echo '~'?>" ~>

        ... Tabellenlayout ...
          </body>
        </html>

        Generell bietet Dir aber PHP auch die Möglichkeit ganz auf frames zu verzichten (das </archiv/> wird Dir einen sehr guten Überlick darüber verschaffen können, welche Probleme mit frames einhergehen). Ist es nur eine kleiner private Site, wo Du auch noch an den Provider nach Traffic gestaffelt zu zahlen hast, sind frames natürlich die effizienteste Lösung.

        Abgesehen von dem bis jetzt verfolgtem Konzept Deiner Links in der Form: PHP_seitenaufruf.php?[Parameter] ist es sinnfoller ein Web logisch zu strukturieren und auf die einzelnen Dokumete in der From <a href="mein_haus/bilder/">Mein Haus</a> <a href="mein_auto/bilder/">Mein Auto</a> <a href="mein_boot/bilder/">Mein Boot</a> zu verweisen.
        Das birgt auf den ersten Blick eine Menge Arbeit, ist es aber nicht! Du kannst per include() Dir das Layout jedesmal einbinden ;)

        Gruß aus dem alljährlich am 1. Mai brennenden Berlin!
        eddi

        1. Hallo eddi,

          :-))) Danke für die guten Denkanstösse...

          Gruss aus Landshut,
          Andreas