Archiv verlassen und diese Seite im Standarddesign anzeigen : JS+PHP: document.write()
kerbstone 20-08-2005, 19:48 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?
if(d<eventdate)document.write('<li>' + count + ' Tage' + ' <b>Text:</b> <?php echo $row[text]; ?>');
Wird der PHP-Code geparst?
kerbstone 20-08-2005, 20:36 Original geschrieben von TobiaZ
Wird der PHP-Code geparst?
Was meinst du mit parsen?
ob er ausgeführt wird.
was steht denn im quellcode des browser an der stelle.
kerbstone 21-08-2005, 14:13 Im Quellcode steht genau der Text der angezeigt werden soll...
also:
if(d<eventdate)document.write('<li>' + count + ' Tage' + ' <b>Text:</b> Mein SQL Text');
// 'Mein SQL Text' enthält Umbrüche aber keine Sonderzeichen
tontechniker 21-08-2005, 15:29 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
kerbstone 21-08-2005, 15:34 Aber das folgende funktioniert doch, dann muss das andere doch auch gehen:
<script type="text/javascript">
<!--
endDatum='<?php echo $row[enddate]; ?>';
endDatum=endDatum.split('.');
(...)
//-->
</script>
@tontechniker
da muss ich kerbstone zustimmen ... :-P
aber @kerbstone
// 'Mein SQL Text' enthält Umbrüche aber keine Sonderzeichen und genau die umbrüche dürfen bei document.write() nicht sein.
kerbstone 21-08-2005, 20:14 @Abraxax
Wie kann man dieses Problem dann lösen?
Gibt es eine Alternative zu document.write, die Umbrüche enthalten darf?
ghostgambler 21-08-2005, 20:22 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)
kerbstone 21-08-2005, 20:57 Kannst du mir bitte ein Beispiel geben,
mein Code wird leider wieder geparst:
function br2nl($str) {
$str = preg_replace("/(\r\n|\n|\r)/", '\n', $str);
return preg_replace("=<br */?>=i", '\n', $str);
}
$text = nl2br(br2nl($_POST[text]));
ghostgambler 21-08-2005, 21:29 Original geschrieben von kerbstone
Kannst du mir bitte ein Beispiel geben,
mein Code wird leider wieder geparst:
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
$text = br2nl(nl2br($_POST['text']));
machen....guck dir doch einfach den HTML-Code an, ob noch Umbrüche drin sind Oo
kerbstone 21-08-2005, 22:57 Habe es nun so gelöst:
$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.
ein $text4out = str_replace(array("\n","\r"), array('\n','\n'), $text); sollte eigentlich reichen.
kerbstone 22-08-2005, 19:00 @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.
dann gehe ich mal davon aus, dass du das noch nicht getestet hast?
durch das \n im ersetzen teil werden die umbrüche bereits dargestellt.
kerbstone 22-08-2005, 20:36 Du darfst aber davon ausgehen, dass ich es getestet habe:
<?php
$text4out = str_replace(array("\n","\r"), array('\n','\n'), $row[text]); echo $text4out;
// Der Text steht wie folgt in der MySQL Tabelle
Erste Zeile....
Hier kommt die zweite Zeile
und hier
die
vierte Zeile
hier erscheint freistehender Text
// Die Ausgabe sieht so aus, dass alles aneinandergereiht wird
?>
und was steht im quelltext?
kerbstone 22-08-2005, 20:43 Ich zitiere den Quelltext:
Erste Zeile....\n\nHier kommt die zweite Zeile\n\nund hier\n\ndie\n\nvierte Zeile\n\n\n\nhier erscheint freistehender Text
bzw.:
if(d<eventdate)document.write(count + ' Tage' + 'Erste Zeile....\n\nHier
kommt die zweite Zeile\n\nund hier\n\ndie\n\nvierte Zeile\n\n\n\nhier
erscheint freistehender Text');
so soll es doch im JS auch sein. oder nicht?
kerbstone 22-08-2005, 22:27 Ja schon :), aber in HTML sollen die Umbrüche (\n) auch dargestellt werden
als Umbruch und das passiert nicht.
entweder mit JS für die ausgabe wieder ersetzen oder direkt in php vor dem \n ein <br /> einfügen.
|
|