document.write() langsam kommt verzweifling auf ....

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • document.write() langsam kommt verzweifling auf ....

    Hallo Leute
    ich stecke etwas in der zwikmühle
    ich muss in ein php template weiteren phpcode einfügen (ein paar sql queries)
    da dies in geparsten template nicht geht ist ja bekannt.
    bis heute habe ich dieses problem mit einem javascript gelöst.

    im template:
    <script language="javascript" src="template_js.php"></script>

    template_js.php:
    <?php
    meine queries usw...
    echo "document.write($result);";
    ?>

    bis anhin funktionierte das ohne probleme.

    Heute muss ich aber aus einer textwerbung DB werte wie:
    $result = "Hallo
    dies ist
    meine
    textwerbung"

    ausgeben.

    jetzt erhalte ich aber mit document.write folgende meldung:
    nicht abgeschlossene zeichenfolgekonstante!

    beispiel zum veranschaulichen:
    <script language="javascript">
    <!--
    var result = "Hallo
    welt!";
    document.write(result);

    -->
    </script>

    meine frage:
    wie kann ich die variable result so ändern das ich sie mit document.write ausgeben kann?
    ode gäbe es eine alternative? (ausser alle DB einträge zu ändern)

    was ich ebenfalls versucht habe ist:
    <script language="javascript">
    <!--
    var result = "Hallo
    Welt";
    var neuresult = result.replace(/\n/,"/\r/");
    document.write(neuresult);

    -->
    </script>

    funktioniert leider auch nicht

    Danke euch zum foraus
    joschua
    Zuletzt geändert von joschua; 30.04.2002, 06:15.
    Nicht Tatsachen,
    sondern Meinungen über Tatsachen
    bestimmen das Handeln der Menschen.
    (Epiktet (50-138 n.Chr.)

  • #2
    Schon mal versucht, die Zeilenumbrüche vor der Zuweisung im JavaScript umzuwandeln?

    z.B. so: $result = eregi_replace("\r\n","<br>",$result);
    Immer erst mal gucken, ob Benzin im Tank ist ...

    Kommentar


    • #3
      guter vorschlag...
      geht leider nicht da ich die variable folgendermassen belege:
      var blah = "<?php include ... ?>";

      ich könnte auch einfach das file kopieren, ändern und neus speichern. nur möchte ich das eigentlich nicht müssen da ich sonst zu fiele files doppelt führe.
      Nicht Tatsachen,
      sondern Meinungen über Tatsachen
      bestimmen das Handeln der Menschen.
      (Epiktet (50-138 n.Chr.)

      Kommentar


      • #4
        Wie wär´s damit?

        var neuresult = result.replace(/\n/,"<br>");
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          ein hoffnungsschimmer...

          ...klappt leider auch nicht
          Nicht Tatsachen,
          sondern Meinungen über Tatsachen
          bestimmen das Handeln der Menschen.
          (Epiktet (50-138 n.Chr.)

          Kommentar


          • #6
            Ich habs mal bei mir ausprobiert. Du darfst den Umbruch nicht bis zum JavaScript bringen, da ein Umbruch beim Zuweisen einer Variablen wie bei PHP nicht geht.

            Ich denke, du wirst an dein PHP-Script gehen müssen, und den Umbruch vor der Übergabe an JavaScript zu wandeln.
            Immer erst mal gucken, ob Benzin im Tank ist ...

            Kommentar


            • #7
              hmm ... stimmt auffallend.
              urlencode sollte reichen.
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                naja dan muss ich da wohl durch
                trotzdehm thanx für eure hilfe

                Joschua
                Nicht Tatsachen,
                sondern Meinungen über Tatsachen
                bestimmen das Handeln der Menschen.
                (Epiktet (50-138 n.Chr.)

                Kommentar


                • #9
                  Idee

                  <form name="formular"><textarea name="result">$result</textarea></form>
                  ...
                  result = document.formular.result.value;

                  Die Textarea kannst Du vielleicht in einem hidden frame verstecken und dann per top.frames[1].document... auslesen


                  Oder du könntest noch versuchen, statt dessen

                  <input type="hidden" name="result" value="$result">

                  zu benutzen; aber ich vermute dass dir da die Zeilenumbrüche wieder einen Strich durch die Rechnung machen.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    Die Lösung

                    Falls es jemand interessiert....

                    dort wo ich das include brauche, wird bei den templates nicht wie normalerweise {wert} verwendet.

                    sondern: $wert

                    wenn ich nun im phpfile
                    $wert = "Hallo Welt";
                    angebe ...

                    und im template: $wert

                    erscheint an der stelle $wert hallo welt

                    so klappt es nun:
                    PHP-Code:
                    ob_start();
                    include(
                    "$DOCUMENT_ROOT blah.php");
                    $content ob_get_contents(); ob_end_clean();
                    $blah$content
                    nun erscheint an der stelle wo ich im template $blah angebe das include

                    Nicht Tatsachen,
                    sondern Meinungen über Tatsachen
                    bestimmen das Handeln der Menschen.
                    (Epiktet (50-138 n.Chr.)

                    Kommentar

                    Lädt...
                    X