Markus: JavaFunktion-Anweisung in PHP

Hallo zusammen,

kann man in PHP sowas definieren?

<?php

if ($var1 != $var2)
 {
  echo "<script type="text/javascript"> <!-- init(); //--></script>";
 }
?>

Ich möchte die Ausführung der JS-Anweisung an eine Bedingung knüpfen.

Vielen Dank im voraus.

  1. hallo,

    kann man in PHP sowas definieren?
    echo "<script type="text/javascript"> <!-- init(); //--></script>";

    Selbstverständlich kann man "sowas" machen. Warum fragst du? Was ist denn passiert, als du es ausprobiert hast? Welche Fehlermeldung hast du bekommen?

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Hi Christoph

      Selbstverständlich kann man "sowas" machen. Warum fragst du? Was ist »» denn passiert, als du es ausprobiert hast? Welche Fehlermeldung hast »» du bekommen?

      Ich habe zwar keine Fehlermeldung bekommen, aber das JS Skript lief nicht. Wenn das JS Skript aus der PHP Anweisung "raus nehme", läuft das Skript. $var1 und $var2 habe ich geprüft, sind unterschiedlich.

      Grüsse

      Markus

    2. Hi Christoph S.,

      ich habe den Fehler gefunden. Man darf die JS Anweisung nicht in eine Zeile schreiben.

      so geht es:

      echo "<script type="text/javascript"><!--
           init();
           //--></script>";

      Im einer "normalen" HTML darf man auch die JS-Anweisung nicht in eine Zeile schreiben.

      Bye
      Markus

      1. Moin

        Im einer "normalen" HTML darf man auch die JS-Anweisung nicht in eine Zeile schreiben.

        seit wann?

        Gruß
        rfb

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

          wenn ich

          <script type="text/javascript"><!-- init(); //--></script>;

          in eine Zeile schreibe, dann wird das Skript bei mir nicht ausgeführt.

          Dabei ist es egal ob die Anweisung in einer HTML oder einer PHP steht.

          Markus

          1. Moin

            wenn ich

            <script type="text/javascript"><!-- init(); //--></script>;

            in eine Zeile schreibe, dann wird das Skript bei mir nicht ausgeführt.

            das besagt aber nichts darüber, ob das "erlaubt" ist.
            Lass doch einfach mal die (überflüssigen) HTML-Kommentare weg, dann sollte das klappen.

            Gruß
            rfb

            --
            Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
            (Galileo Galilei)
          2. Ich grüsse den Cosmos,

            <script type="text/javascript"><!-- init(); //--></script>;

            ^^

            Alles, was hiernach kommt, ist für PHP ein Kommentar, somit wird alles danach nicht mehr angezeigt.
            Das du keine Fehlermeldung bekommst, dürfte ein dummer Zufall sein.

            Möge das "Self" mit euch sein

            --
            Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
            ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
            1. echo $begrüßung;

              <script type="text/javascript"><!-- init(); //--></script>;
                                                            ^^
              Alles, was hiernach kommt, ist für PHP ein Kommentar, somit wird alles danach nicht mehr angezeigt.

              Diese Aussage stimmt nicht. Solange man sich in einem String befindet - was hier der Fall ist - werden Kommentarzeichenfolgen oder auch ein ?> nur als ganz normale Zeichen innerhalb eines Strings betrachtet.

              echo "$verabschiedung $name";

              1. Ich grüsse den Cosmos,

                Diese Aussage stimmt nicht. Solange man sich in einem String befindet - was hier der Fall ist - werden Kommentarzeichenfolgen oder auch ein ?> nur als ganz normale Zeichen innerhalb eines Strings betrachtet.

                Ascha auf mein Haupt. Ich hab mich irretieren lassen vom Highlighting des PS-Pad, das auch ein // innerhalb eines Strings als Kommentar kennzeichnet :(

                Möge das "Self" mit euch sein

                --
                Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
                ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
  2. Hallo,

    kann man in PHP sowas definieren?

    <?php

    if ($var1 != $var2)
    {
      echo "<script type="text/javascript"> <!-- init(); //--></script>";
    }
    ?>

    ja, das geht. Die Anweisung wird nur geschrieben, wenn die Bedingung in if stimmt.

    Mir wäre folgendes lieber (Geschmackssache):

      
    <?php  
        $initCondition = ($var1 == $var2) ? 'false' : 'true';  
        echo '<script type="text/javascript">init(' . $initCondition . ');</script>';  
    ?>  
    
    

    (Ohne Gewähr auf Schreibfehlerfreiheit.) So wird die init-Funktion immer aufgerufen, aber in Abhängigkeit von der Bedingung mit verschiedenen Werten (hier boolean: true || false).

    Es lässt sich wahrscheinlich auch noch anderes optimieren (z.B. Trennung von html und js), aber das ist ja nicht Deine Frage.

    Gruß
    Olaf