greY: JavaScript und PHP unverträglich?

Hallo,

ich habe folgendes Problem festgestellt:

ich habe ein PHP-Script, dass einen eMailtext generiert. Nun möchte ich diesen, bevor ich ihn per mailto in mein Outlook bekomme, ansehen. Dazu habe ich folgende funktion geschrieben:

Code:
__________________________________________________
<script language="JavaScript">
function PreViewMail(text,breite,hoehe) {
  var fenstergroesse = 'width=' + breite + ',height=' + hoehe;
  fenster = window.open('','',fenstergroesse);
  fenster.document.write('<html><head><title>Vorschau</title></head><body>',text,'</body></html>');
}
</script>
_______________________________________________________

Der Text soll nun so in die funktion übermittelt werden:
Code:
_______________________________________________
<input class="button" name="look" type="button" value="Voransicht" onClick="PreViewMail('<?PHP echo $vorschau; ?>','640','480')">
________________________________________________
hierbei wird jedoch in der Übermittlungszeile ein Fehler angezeigt. Wenn ich den Text jedoch per Hand eintippen würde, also so:
Code:
________________________________________________
<input class="button" name="look" type="button" value="Voransicht" onClick="PreViewMail('hier mein Ttext...','640','480')">
________________________________________________

klappt alles wie ich es mir vorstelle.

Hat vielleicht jemand eine Idee, wieso es nicht so will wie ich gerne hätte ?
Habe es auch schon mit htmlspecialchars() probiert, alles irgendwie ohne Wirkung.

  1. hi,

    ich habe ein PHP-Script, dass einen eMailtext generiert. Nun möchte ich diesen, bevor ich ihn per mailto in mein Outlook bekomme,

    das soll doch wohl hoffentlich nicht wirklich heissen, dass du per PHP einen mailto:-link generierst, um die mail dann darüber zu verschicken (zu versuchen).
    _bitte_ sag mir, dass du selbstverständlich die mail()-funktion von PHP nutzt, um die mail zu verschicken.

    <input class="button" name="look" type="button" value="Voransicht" onClick="PreViewMail('<?PHP echo $vorschau; ?>','640','480')">
    ________________________________________________
    hierbei wird jedoch in der Übermittlungszeile ein Fehler angezeigt.

    das javascript in der notation von strings keine zeilenumbrüche erlaubt, ist dir
    a) bekannt,
    und wurde von dir
    b) an dieser stelle berücksichtigt?

    gruss,
    wahsaga

    1. das soll doch wohl hoffentlich nicht wirklich heissen, dass du per PHP einen mailto:-link generierst, um die mail dann darüber zu verschicken (zu versuchen).

      das ist natürlich etwas schwachsinnig was ich da geschrieben habe...
      Ich will lediglich die eMail vor dem Versand per mail() überprüfen.

      das javascript in der notation von strings keine zeilenumbrüche erlaubt, ist dir
      a) bekannt,

      nein, war mir nicht bekannt
      Die Variable $vorschau wird etwa so erstellt:
      $emailtext ="text\n";
      $emailtext.="text2\n";
      $emailtext.="text3\n";

      $vorschau = str_replace("\n","<br>",$emailtext);

      An Sonderzeichen verwende ich nichts, nur -,=,. die nicht stören dürften.

  2. ich habe ein PHP-Script, dass einen eMailtext generiert. Nun möchte ich diesen, bevor ich ihn per mailto in mein Outlook bekomme, ansehen. Dazu habe ich folgende funktion geschrieben:

    mailto: funktioniert nur selten und sollte von daher vermieden werden (http://praast.de/ffq/formular/). Es sei denn dir ist es nicht so wichtig das deine Besucher in Kontakt mit dir treten können.

    <script language="JavaScript">

    hier fehlt das type Attribut, language ist veraltet und eigentlich nicht mehr nötig.

    <input class="button" name="look" type="button" value="Voransicht" onClick="PreViewMail('<?PHP echo $vorschau; ?>','640','480')">

    hier wäre es interessantgewesen, was in $vorschau drinsteht, bzw. was im Browser ankommt und nicht was im PHP Code steht.

    Zahlen musst du übrigens nicht mit Hochkommas umschliessen.

    Struppi.

    1. <script language="JavaScript">

      hier fehlt das type Attribut, language ist veraltet und eigentlich nicht mehr nötig.

      meinst Du, es sollte so aussehen:
      <script type="JavaScript"> ?

      1. hi,

        hier fehlt das type Attribut, language ist veraltet und eigentlich nicht mehr nötig.

        meinst Du, es sollte so aussehen:
        <script type="JavaScript"> ?

        nein, <script type="text/javascript">.

        und bitte beantworte auch die andere frage (ok, frage war's eigentlich nicht wirklich), was denn nun clientseitig für ein code an dieser stelle ankommt.

        gruss,
        wahsaga

        1. und bitte beantworte auch die andere frage (ok, frage war's eigentlich nicht wirklich), was denn nun clientseitig für ein code an dieser stelle ankommt.

          das hatte ich zwar schon einen Thread weiter unten geschrieben, aber hier nochmal :)

          Die Variable $vorschau wird etwa so erstellt:
          $emailtext ="text\n";
          $emailtext.="text2\n";
          $emailtext.="text3\n";

          $vorschau = str_replace("\n","<br>",$emailtext);

          An Sonderzeichen verwende ich nichts, nur -,=,. die nicht stören dürften.

          1. hi,

            das hatte ich zwar schon einen Thread weiter unten geschrieben

            nein!

            die frage war, was _am client_ für ein code _ankommt_ (und nicht, welchen du serverseitig zu dessen erstellung verwendest).

            gruss,
            wahsaga

            1. hi,

              ich hoffe du meinst die Fehlermeldung, sonst verstehe ich die Frage nicht.

              im Browser ist nichts zu sehen, nur in der Statusleiste(unten) wird ein Scriptfehler angezeigt und der Button funktioniert dementsprechend nicht.

              Fehler: "Nicht abgeschlossene Zeichenfolgenkonstante";

              kommentiere ich die Zeile(mit dem Javascript-Aufruf) im HTML code aus, ist der Fehler weg, also muss es dieser sein.

              1. ich hoffe du meinst die Fehlermeldung, sonst verstehe ich die Frage nicht.

                rechte Maus -> view source

                Das einzig relevante für das JS ist, was kommt im Browser für Code an.

                Fehler: "Nicht abgeschlossene Zeichenfolgenkonstante";

                Das ist ist eigentlich eine klare Meldung. Du hast entweder zu wenig oder zuviele Anführungszeichen odewr Hochkommas.

                Struppi.

                1. rechte Maus -> view source

                  folgendes kommt an:
                  __________________________________________________
                  onClick="PreViewMail(''Hallo,<br><br>text...<br>aufzaehlung:<br><br>...........................................................................<br>text<br>-----------------------------------------------------<br>text<br>=============================================================<br>text<br>...........................................................................<br><br>webmaster@server.de<br>'',640,480)">
                  ___________________________________________________

                  ich habe zusammenhängenden text entfernt, bzw durch "text" ersetzt.
                  Keinerlei Sonderzeichen, etc.

                  1. habe nen fehler rein gemacht, sieht natürlich so aus:
                    __________________________________________________
                    onClick="PreViewMail('Hallo,<br><br>text...<br>aufzaehlung:<br><br>...........................................................................<br>text<br>-----------------------------------------------------<br>text<br>=============================================================<br>text<br>...........................................................................<br><br>webmaster@server.de<br>',640,480)">
                    ___________________________________________________

                    1. hi,

                      und, tauchen die zeilenumbrüche innerhalb des strings, die in dem posting zu sehen sind, so auch im quelltext auf?

                      dass diese dort nicht erlaubt wären, sagte ich dir ja bereits ...

                      gruss,
                      wahsaga

                      1. und, tauchen die zeilenumbrüche innerhalb des strings, die in dem posting zu sehen sind, so auch im quelltext auf?

                        ja es sind 2oder3 Umbrüche drinnen.... das ist also das problem?

                        1. Tatsächlich !!

                          vielen Dank, es läuft alles bestens.

                          1. Hallo

                            noch eine Frage hätte ich
                            und zwar, hierzu:
                            ________________________
                            function PreViewMail(text,breite,hoehe) {
                             var fenstergroesse = 'width=' + breite + ',height=' + hoehe;
                             fenster = window.open('','',fenstergroesse);
                             fenster.document.write('<html><head><title>Vorschau</title></head><body>',text,'</body></html>');
                            }
                            ________________________

                            wie bekomme ich es so hin, dass Skrollbalken vorhanden sind?

                            1. Hallo

                              noch eine Frage hätte ich
                              und zwar, hierzu:
                              ________________________
                              function PreViewMail(text,breite,hoehe) {
                               var fenstergroesse = 'width=' + breite + ',height=' + hoehe;
                               fenster = window.open('','',fenstergroesse);
                               fenster.document.write('<html><head><title>Vorschau</title></head><body>',text,'</body></html>');
                              }
                              ________________________

                              wie bekomme ich es so hin, dass Skrollbalken vorhanden sind?

                              so:

                              function PreViewMail(text,breite,hoehe) {
                               var fenstergroesse = 'width=' + breite + ',height=' + hoehe + ',scrollbars';
                               fenster = window.open('','',fenstergroesse);
                               fenster.document.write('<html><head><title>Vorschau</title></head><body>',text,'</body></html>');
                              }

                              habs selbser gefunden, sorry ^^

  3. Hallo greY,

    _______________________________________________
    <input class="button" name="look" type="button" value="Voransicht" onClick="PreViewMail('<?PHP echo $vorschau; ?>','640','480')">
    ________________________________________________

    Wie sieht es hiermit aus?

    onClick="PreViewMail('<?PHP echo "'$vorschau'"; ?>

    schönen tach noch
    ich

    1. onClick="PreViewMail('<?PHP echo "'$vorschau'"; ?>

      leider unverändert