mit php => javascript ausgeben

gardenexpie

Aktives Mitglied
Thread Starter
Dabei seit
10.12.2003
Beiträge
145
Reaktionspunkte
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ß;-)
 
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.
 
Definiere "geht nicht"
Was gibt die Fehler-Konsole denn aus?
 
denke es liegt an den gescheiften klammern und semikolen. leider hab ich keine ahnung, wie ich es so hinbekomme das es funktioniert.
 
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
 
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 ;)
 
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.
 
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.
 
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
 
Zurück
Oben Unten