Benutzerdefinierte Suche

mit php => javascript ausgeben

  1. gardenexpie

    gardenexpie Thread StarterMacUser Mitglied

    Mitglied seit:
    10.12.2003
    Beiträge:
    144
    Zustimmungen:
    0
    hallo zusammen,

    möchte folgendes mit php ausgeben, aber es geht nicht. das script funktioniert aber wenn ich es in einer reinen html-seite hab.

    <?php
    echo "<script type=\"text/javascript\" language=\"JavaScript\">
    js_var FO = { movie:\"flvplayer.swf\",width:\"320\",height:\"240\",majorversion:\"7\",build:\"0\",
    flashvars:\"file=video.flv&showdigits=false&showicons=false&autostart=true&showfsbutton=true&repeat=true\" };
    UFO.create( FO, \"player1\");
    </script>
    ";
    ?>


    kann mir jemand weiterhelfen?

    gruß;-)
     
    gardenexpie, 04.01.2007
  2. Fabien

    FabienMacUser Mitglied

    Mitglied seit:
    23.12.2003
    Beiträge:
    227
    Zustimmungen:
    12
    Wird vielleicht alles zu einem langen Wurm zusammengehängt und Zeilenanfang sowie -ende jeweils ohne Leerzeichen direkt verbunden?

    Ansonsten schau halt mal den generierten HTML-Code an. Wüsste nicht, warum der Fehler dort nicht zu erkennen sein soll. Der Browser merkt ja nicht ob das HTML von einer Seite kommt oder vom Server generiert wurde.
     
    Fabien, 04.01.2007
  3. scope

    scopeMacUser Mitglied

    Mitglied seit:
    24.01.2005
    Beiträge:
    4.085
    Zustimmungen:
    301
    Definiere "geht nicht"
    Was gibt die Fehler-Konsole denn aus?
     
    scope, 04.01.2007
  4. gardenexpie

    gardenexpie Thread StarterMacUser Mitglied

    Mitglied seit:
    10.12.2003
    Beiträge:
    144
    Zustimmungen:
    0
    denke es liegt an den gescheiften klammern und semikolen. leider hab ich keine ahnung, wie ich es so hinbekomme das es funktioniert.
     
    gardenexpie, 04.01.2007
  5. 2nd

    2ndMacUser Mitglied

    Mitglied seit:
    25.07.2004
    Beiträge:
    8.901
    Zustimmungen:
    242
    Mal eine andere Frage: Warum willst Du überhaupt HTML- und JS-Code per PHP Interpreter ausgeben? Ist langsam (Interpreter muss rechnen) und fehleranfällig (Zeilenumbüche im JS), unübersichtlich (Ausmaskieren von " oder ' und Einschliessen von Strings) und geht viel eleganter ohne.

    Das funktioniert z. B. so:

    PHP:

    <?
       if ( ($nameError) { ?>
          <p class="error">Eingabefehler - bitte korrigieren Sie die markierten Felder!</p>
       <? } ?>

    Oder so:

    PHP:

    <?
       if ( ($nameError) : ?>
          <p class="error">Eingabefehler - bitte korrigieren Sie die markierten Felder!</p>
       <? endif; ?>

    Sprich, Du kannst Logik (PHP) mit Markup/JS (HTML) mischen. Funktioniert z. B. auch mit Schleifen und allen anderen netten PHP Dingen.

    Oder so z. B.:

    PHP:
    <input name="inputSubject" type="text" value="<?=$phpVariable ?><?=phpFunktion($argument?> />
    So wie in Deinem Bsp. macht es erstmal keinen Sinn, da Du dafür kein PHP brauchst.

    2nd
     
  6. goddess

    goddessMacUser Mitglied

    Mitglied seit:
    26.02.2006
    Beiträge:
    229
    Zustimmungen:
    10
    Wenn der String welcher der Funktion print bzw. echo übergeben wird nicht geparst werden soll, dann verwende statt " ein ' zum begrenzen. Damit ersparst du dir auch das Escapen der " im Javascript.

    Übrigens wäre eine Fehlermeldung von Seiten Javascript auch recht hilfreich ;)
     
    goddess, 07.01.2007
  7. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.984
    Zustimmungen:
    1.545
    Das Escapen von Quotes geht nur bis zu einem gewissen Bereich gut! Daher empfiehlt es sich bei PHP, vor allem wenn man Template-Bereiche aus Variablen per PHP generiert, eigene externe JS-Dateien anzulegen.
    Klar kann man Quotes mit "\" escapen, ab einem gewissen Punkt ist der Code aber unlesbar/unwartbar.
     
    wegus, 08.01.2007
  8. marcryser

    marcryserMacUser Mitglied

    Mitglied seit:
    09.09.2006
    Beiträge:
    2
    Zustimmungen:
    0
    Es sit in der Tat so, dass das Problem bei den Gänsefüsschen, oder Quotes liegt. Ich habe da mal eine vielleicht etwas umständliche Lösung angewandt, die aber Funktioniert. Und zwar geht das folgendermassen:
    Alles, was zwischen Quotes kommt, wird richtig in Variabeln verpackt. Und das sieht dann etwa so aus:

    <?php
    $type = "\"text/javascript\"";
    $language = "\"JavaScript\"";
    echo "<script type=$type language=$language>

    Danach notierst du anstelle des Textes einfach die Variablen ;-) gibt viel zu tun, aber funktioniert wenigstens.
     
    marcryser, 28.01.2007
  9. 2nd

    2ndMacUser Mitglied

    Mitglied seit:
    25.07.2004
    Beiträge:
    8.901
    Zustimmungen:
    242
    Ich verstehe immer noch nicht, warum man so umständlich vorgeht und HTML/JS - Ausgaben unbedingt via PHP-Funktion an den Browser schickt.

    Das obige Bsp. würde ich auch anders machen, z. B. so:

    PHP:
    <?
       
    $type "text/javascript";
       
    $language "JavaScript";
    ?>

    <script type="<?=$type?>" language="<?=$language?>">
    Der HTML/JS/PHP MischMasch ist (wie Wegus schon sagte) ja nicht pflegbar...

    2nd
     
Die Seite wird geladen...
Ähnliche Themen - php javascript ausgeben
  1. KrisAusEU
    Antworten:
    7
    Aufrufe:
    846
  2. jan
    Antworten:
    0
    Aufrufe:
    789
  3. t.bakr
    Antworten:
    2
    Aufrufe:
    2.314
    QBFinest
    15.02.2008
  4. gardenexpie
    Antworten:
    1
    Aufrufe:
    773
  5. librarian
    Antworten:
    10
    Aufrufe:
    1.050
    msslovi0
    02.09.2005