JS+PHP: document.write()

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

  • JS+PHP: document.write()

    Ich habe das Problem, dass sobald ich PHP Tags in document.write
    bringe, "count Tage" nicht mehr angezeigt wird.
    Hat jemand eine Idee, wie ich es anders schreiben könnte?

    PHP-Code:
    if(d<eventdate)document.write('<li>' + count + ' Tage' + ' <b>Text:</b> <?php echo $row[text]; ?>');

  • #2
    Wird der PHP-Code geparst?

    Kommentar


    • #3
      Original geschrieben von TobiaZ
      Wird der PHP-Code geparst?
      Was meinst du mit parsen?

      Kommentar


      • #4
        ob er ausgeführt wird.

        was steht denn im quellcode des browser an der stelle.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Im Quellcode steht genau der Text der angezeigt werden soll...
          also:
          PHP-Code:
          if(d<eventdate)document.write('<li>' count ' Tage' ' <b>Text:</b> Mein SQL Text');

          // 'Mein SQL Text' enthält Umbrüche aber keine Sonderzeichen 
          Zuletzt geändert von kerbstone; 21.08.2005, 13:20.

          Kommentar


          • #6
            1. PHP ist eine Server-basierende Sprache, das heißt PHP wird auf dem Server ausgeführt
            2. JavaScript ist Client-basierend, das heißt JavaScript wird auf dem Client ausgeführt
            => Wenn du PHP-Tags mit JS schreibst können sie nicht geparst/ausgefürt werden
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Aber das folgende funktioniert doch, dann muss das andere doch auch gehen:

              PHP-Code:
              <script type="text/javascript">
              <!--

              endDatum='<?php echo $row[enddate]; ?>';
              endDatum=endDatum.split('.');

              (...)
              //-->
              </script>

              Kommentar


              • #8
                @tontechniker
                da muss ich kerbstone zustimmen ... :-P

                aber @kerbstone
                // 'Mein SQL Text' enthält [color=red]Umbrüche[/color] aber keine Sonderzeichen
                und genau die umbrüche dürfen bei document.write() nicht sein.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  @Abraxax

                  Wie kann man dieses Problem dann lösen?
                  Gibt es eine Alternative zu document.write, die Umbrüche enthalten darf?

                  Kommentar


                  • #10
                    Original geschrieben von kerbstone
                    @Abraxax

                    Wie kann man dieses Problem dann lösen?
                    Gibt es eine Alternative zu document.write, die Umbrüche enthalten darf?
                    kann man nicht document.write('line \n newline'); machen? Dann müsstest du nur alle Umbrüche, durch den String '\n' ersetzen (also in einfachen Anführungszeichen setzen, ansonsten wird "\n" von PHP wieder geparst XD)

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Kannst du mir bitte ein Beispiel geben,
                      mein Code wird leider wieder geparst:

                      PHP-Code:
                      function br2nl($str) {
                         
                      $str preg_replace("/(\r\n|\n|\r)/"'\n'$str);
                         return 
                      preg_replace("=<br */?>=i"'\n'$str);
                      }

                        
                      $text nl2br(br2nl($_POST[text])); 

                      Kommentar


                      • #12
                        Original geschrieben von kerbstone
                        Kannst du mir bitte ein Beispiel geben,
                        mein Code wird leider wieder geparst:

                        PHP-Code:
                        function br2nl($str) {
                           
                        $str preg_replace("/(\r\n|\n|\r)/"'\n'$str);
                           return 
                        preg_replace("=<br */?>=i"'\n'$str);
                        }

                          
                        $text nl2br(br2nl($_POST[text])); 
                        wie geparst?
                        ich würde aber
                        PHP-Code:
                        $text br2nl(nl2br($_POST['text'])); 
                        machen....guck dir doch einfach den HTML-Code an, ob noch Umbrüche drin sind Oo

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Habe es nun so gelöst:

                          PHP-Code:
                            $text nl2br($_POST[text]);
                            
                          $text str_replace("<br />""/n"$text); 
                          Einziges Problem ist nun, dass in MySQL der Text
                          nachwievor mit Umbruch gespeichert wird,
                          den bekomme ich nicht weg.

                          Ich würde mich über weitere Postings freuen.

                          Kommentar


                          • #14
                            ein
                            PHP-Code:
                            $text4out str_replace(array("\n","\r"), array('\n','\n'), $text); 
                            sollte eigentlich reichen.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              @Abraxax
                              Das reicht vollkommen

                              Kann ich die Umbrüche denn wieder herstellen,
                              sodass ich sie so wie sie in der Tabelle stehen,
                              anzeigen kann.
                              Mit wordwrap() könnte ich natürlich nun bestimmen
                              wann ich Umbrüche haben möchte. Das ist aber nicht mein Ziel.
                              Der Text soll so erscheinen wie er eingegeben wurde.

                              Kommentar

                              Lädt...
                              X