Steuerzeichen maskieren
heinetz
- javascript
Hallo Forum,
für eine Intranet-Applikation zur Pflege einer DB habe
folgendes gemacht:
php:
$value['deutsch'] = "";
$value['englisch'] = "value";
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";
js:
tag = document.getElementById('table_data');
default_value = elementsA[i].getAttribute('default');
if(tag.innerHTML=="")tag.innerHTML = default_value;
tag.className = "default";
Das sorgt dafür, dass in meiner Tabellenzelle der "default"
angezeigt wird, wenn sie leer ist. Soweit so gut. Das
funktioniert wunderbar. Jetzt bekomme ich aber ein Problem
mit den Sonderzeichen ;)
php:
$value['deutsch'] = "";
$value['englisch'] = "<value>";
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";
... führt dazu, dass garnichts angezeigt wird.
php:
$value['deutsch'] = "";
$value['englisch'] = "<value>";
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";
... führt auch dazu dass garnichts angezeigt wird.
tag = document.getElementById('table_data');
default_value = elementsA[i].getAttribute('default');
if(tag.innerHTML=="")tag.innerHTML = escape(default_value);
tag.className = "default";
... führt zu dieser Anzeige: %3value%3E
Kann mir jemand sagen, wie ich das Sonderzeichen richtig
maskiere ?
danke fuer tipps und
beste gruesse,
heinetz
Hallo,
für eine Intranet-Applikation zur Pflege einer DB habe folgendes gemacht:
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";
über mögliche Nebenwirkungen beim Einsatz von Phantasieattributen bist du dir im Klaren? Dass das Dokument nicht valide ist, wäre zunächst die formale Nebenwirkung - das ermächtigt den Browser aber auch, nach eigenem Ermessen zu "korrigieren".
Beispielsweise kannst du dich nicht darauf verlassen, dass diese ungültigen Attribute auch mit Javascript aus dem DOM gelesen und verarbeitet werden können.
$value['deutsch'] = "";
$value['englisch'] = "<value>";
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";
>
> ... führt dazu, dass garnichts angezeigt wird.
Dann machst du was falsch, und zwar bei den Einstellungen fürs Debugging. Lass dir bitte die PHP-Fehlermeldungen auch anzeigen! Das obige echo müsste einen Parse Error auslösen. Achte auf deine String-Begrenzerzeichen und maskiere sie, wo nötig!
Angenommen, der PHP-Syntaxfehler wäre behoben, dann würde diese Anweisung ungültiges HTML erzeugen:
<td id="table\_data" default="<value>">
Das '<' muss als < codiert werden, wenn es nicht in seiner Bedeutung als SGML-Tagbegrenzer gemeint ist.
> echo "<td id="table\_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";[/code]
> ... führt auch dazu dass garnichts angezeigt wird.
Weil derselbe PHP-Syntaxfehler drinsteckt. Ansonsten wäre das die korrekte Form.
So long,
Martin
--
"Drogen machen gleichgültig."
- "Na und? Mir doch egal."
Hi,
ich habe mit Phantasieattributen bisher keine Probleme gehabt,
aber mir ist bewusst, dass das nicht gerade zu validem XHMLT
beiträgt. Es handelt sich, wie gesagt um eine interne
Geschichte, mit der 10 unterschiedliche Clients arbeiten. Zur
Not kann ich da sogar Systemvoraussetzungen vorgeben. Also das
ist nicht das Thema.
Das ganze ist natürlich um einiges komplexer und ich habe
versucht, das Prinzip als Beispiel zusammenzuschreiben. Dabei
ist mir ein Fehler unterlaufen, der PHP stören würde. Im
Original hat PHP kein Problem, sondern ich, weil mir nicht klar
ist wie ich ein ">" per PHP maskieren soll und wie ich mit
Javascript dann ein ">" ausgeben kann.
Angenommen, der PHP-Syntaxfehler wäre behoben, dann würde diese Anweisung ungültiges HTML erzeugen:
<td id="table_data" default="<value>">
und damit, wie gesagt, zu keiner Ausgabe führen.
Das '<' muss als < codiert werden, wenn es nicht in seiner Bedeutung als SGML-Tagbegrenzer gemeint ist.
echo "<td id="table_data" default="'.$value['englisch'].'">".$value['deutsch']."</td>";[/code]
... führt auch dazu dass garnichts angezeigt wird.Weil derselbe PHP-Syntaxfehler drinsteckt. Ansonsten wäre das die korrekte Form.
führt aber, wie gesagt, auch zu keiner Ausgabe, wenn der
Wert auf dem beschiebenen Weg mit Javascript verabeitet
wird.
beste gruess,
heinetz
Hallo,
Würde ja gerne helfen, aber das ist mir zu verwirrend.
PHP-Fragen stellst du besser in der Rubrik PHP.
Zeige dort einfach, was als HTML beim Browser tatsächlich ankommt und was ankommen soll, mit deinem PHP-Code dazu.
Wenn das geschafft ist, d.h. das gewünschte HTML beim Browser ankommt, dann zeige es hier (das HTML, nicht den PHP-Code) und auch die JS-Funktion dazu. die du zum laufen bringen willst.
So werden Sie geholfen ;)
Gruß, Don P
Hallo
Im Original hat PHP kein Problem, sondern ich, weil mir nicht klar ist wie ich ein ">" per PHP maskieren soll und wie ich mit
Javascript dann ein ">" ausgeben kann.
<http://de.selfhtml.org/html/referenz/zeichen.htm#benannte_html@title=Dann guck doch einfach nach.> Das sollte ja nicht allzu schwer sein.
Tschö, Auge