Christian Düsing: Javascriptelemente in PHP

Hallo,

ist es möglich, Javascriptelemente (also z.B. window.screen.width) innerhalb eines php-Bereichs auszulesen?

Ich habe eine Funktion (in php) in einem Javascriptblock. Innerhalb der Funktion möchte ich die Fensterweite auslesen. Bisher habe ich dies so gemacht:
screenbreite = window.screen.width
mit php müsste es ja so lauten:
$screenbreite = window.screen.width

später möchte ich dann .document.open () und .document.write()

geht das alles äquivalent in PHP oder muss ich da was beachtet?

Viele Grüße
Christian

  1. Salut

    geht das alles äquivalent in PHP oder muss ich da was beachtet?

    Javascript ist auf dem Client unten.
    PHP auf dem Server oben.
    Das heisst, wenn Javascript etwas macht, hat PHP keine Ahnung davon.
    Das Resultat des Javascripts (z.B. die Bildschirmbreite auslesen) müsste also wieder auf dem Server zu PHP geschickt werden.

    Folglich:

    1. Du schickst javascript-Code zum Client.
       Dieser liest die Bildschirmbreite aus und
       schickt diese zu deinem php Script (bbreite.php)

    2. Nun hat bbreite.php die Bildschirmbreite und du kannst
       dem Client die Seite schicken, in der du die Bildschirm-
       breite mit PHP aktiv verwendest.

    Gruss
    Schorsch

      1. Du schickst javascript-Code zum Client.
           Dieser liest die Bildschirmbreite aus und
           schickt diese zu deinem php Script (bbreite.php)

      2. Nun hat bbreite.php die Bildschirmbreite und du kannst
           dem Client die Seite schicken, in der du die Bildschirm-
           breite mit PHP aktiv verwendest.

      Ich glaube so kompliziert wie du es verstanden hast will ich es garnicht. ich habe eine Javascriptfunktion, die ein popup öffnet. Da stehen diverse Javascriptelemente drin: document.open.... jetzt will ich die ganze Funktion in php schreiben, kann ich dann die Javascriptelemente in dem <?php...?>-Block einfach so lassen?

      Gruß
      Christian

      1. Hi,

        jetzt will ich die ganze Funktion in php schreiben, kann ich dann die Javascriptelemente in dem <?php...?>-Block einfach so lassen?

        Beachte die notwendigen Maskierungen!

        Bei folgender Schreibweise müssen nur die "" zu "\" maskiert werden:

        $jsCode=<<<JavaScript
         alert("Test"+'1');
        JavaScript;

        insertJS($jsCode);

        function startJS() { echo "<script type="text/javascript" language="JavaScript"><!--\n"; }
        function writeJS($jsCode) { echo $jsCode."\n"; }
        function endJS() { echo "//--></script>\n"; }
        function insertJS($jsCode) { startJS(); writeJS($jsCode); endJS(); }

        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"!
  2. Hallo Christian,

    ist es möglich, Javascriptelemente (also z.B. window.screen.width) innerhalb eines php-Bereichs auszulesen?

    Klare Antwort: Nein.

    Ich habe eine Funktion (in php) in einem Javascriptblock. Innerhalb der Funktion möchte ich die Fensterweite auslesen. Bisher habe ich dies so gemacht:
    screenbreite = window.screen.width
    mit php müsste es ja so lauten:
    $screenbreite = window.screen.width

    War es nicht vielleicht eher screen.width?

    Du kannst nicht zwei unterschiedliche Sprachen mischen, vor allem nicht, wenn die eine (PHP) auf dem Server und die andere (JavaScript) auf dem Client ausgeführt wird.

    später möchte ich dann .document.open () und .document.write()

    geht das alles äquivalent in PHP oder muss ich da was beachtet?

    Wie gesagt, es geht nicht. Eventuell geht ein Workaround mittels JavaScript, dass die Variablen an ein PHP-Skript übergibt - aber das ist ziemlich böse...

    Bis dann!

    Marc Reichelt || http://www.marcreichelt.de/

    --
    Linux is like a wigwam - no windows, no gates and an Apache inside!
    SELFCode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)
    http://emmanuel.dammerer.at/selfcode.html
    1. Klare Antwort: Nein.

      ok danke,
      dann lasse ich einfach die Funktion so wie sie ist *g*

  3. Hallo Christian, natürlich geht das völlig unkompliziert:

    <html><head><title>Test</title>

    <?
    echo "<script type="text/javascript">
    <!--
    fensterbreite = screen.width
    if(screen.width >= 1024)
     document.write (fensterbreite)
    else
     window.location.href = "datei_2.htm"
    //-->
    </script>";

    ?>
    </head><body>
    </body></html>

    Beachte bitte die Backslash's vor den doppelten Anführungszeichen!!!
    MfG martin