duddle: per firstChild.nodeValue-Text wird nicht evaluiert

Hallo,

ich lasse per PHP Javascript generieren, was an einem DIV an anderer Stelle einen HTML-formatierten Text anhängen soll.

  
<?php  
  
$failure = "<b>Fehler beim &Auml;ndern des Eintrags:</b><br><br>Der Datenbankzugriff zum Update war nicht erfolgreich.<br><br>Probieren Sie die herkömmliche Bearbeitenfunktion (Über den Button mit dem Stift) und wenden Sie sich ggf. an den Admin.";  
  
echo "<script language=\"javascript\">document.getElementById(\"status-failure\").firstChild.nodeValue = '".$failure."';</script>";  
  
?>  

Und ausgegeben wird im div mit id "status-failure":

<b>Fehler beim &Auml;dern des Eintrags:</b><br><br>Der Datenbankzugriff zum Update war nicht erfolgreich.<br><br>Probieren Sie die herk?iche Bearbeitenfunktion (?er den Button mit dem Stift) und wenden Sie sich ggf. an den Admin.

Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben. Eigentlich hätte ich auch gern noch ein mysql_error() eingebaut, aber dann kommt ein JavaScript-Fehler und es wird gar nichts mehr ausgegeben.

[u]Hintergrund:[/u]
Ich benutze das AJAX scriptaculous Modul InPlaceEditor, um einen Eintrag in einer Tabelle zu editieren und evtl. Fehlermeldungen beim Abspeicherns über der Tabelle anzuzeigen. (Zusätzlich benutze ich also noch display:none/block fürs div)

Mache ich etwas falsch? Oder gibt es da eine pfiffigere Methode?

Viele Grüße
Christian

  1. Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben. Eigentlich hätte ich auch gern noch ein mysql_error() eingebaut, aber dann kommt ein JavaScript-Fehler und es wird gar nichts mehr ausgegeben.

    Na ja dann mach doch einfach direkt ä ö ü bei der Ausgabe? Vielleicht hat PHP auch ne Klasse, womit man eindeutigen CharCode eingeben kann, in JAVA gibts sowas zumindest.

    dein mysql_error musste dann schon posten damit man was dazu sagen kann :-)

    1. Hi,

      Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben. Eigentlich hätte ich auch gern noch ein mysql_error() eingebaut, aber dann kommt ein JavaScript-Fehler und es wird gar nichts mehr ausgegeben.

      Na ja dann mach doch einfach direkt ä ö ü bei der Ausgabe? Vielleicht hat PHP auch ne Klasse, womit man eindeutigen CharCode eingeben kann, in JAVA gibts sowas zumindest.

      Umlaute werden zu Fragezeichen.
      Versteh ich nicht. Was PHP ausgeben würde, könnte ich dann ja auch direkt hinschreiben.

      dein mysql_error musste dann schon posten damit man was dazu sagen kann :-)

      Was heißt denn "mein mysql_error"? Quasi alle möglichen mysql_errors müssten ausgegeben werden können. Aber darauf kann ich auch nicht mehr viel Zeit verwenden.

  2. Hi,

    echo "<script language="javascript">document.getElementById("status-failure").firstChild.nodeValue = '".$failure."';</script>";

    Und ausgegeben wird im div mit id "status-failure":

    <b>Fehler beim &Auml;dern des Eintrags:</b><br><br>Der Datenbankzugriff zum Update war nicht erfolgreich.<br><br>Probieren Sie die herk?iche Bearbeitenfunktion (?er den Button mit dem Stift) und wenden Sie sich ggf. an den Admin.

    Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben.

    Natuerlich nicht - du weist den Wert ja dem nodeValue eines *Text*knotens zu.

    Eigentlich hätte ich auch gern noch ein mysql_error() eingebaut, aber dann kommt ein JavaScript-Fehler und es wird gar nichts mehr ausgegeben.

    Dann ueberlege dir, wie du Zeichen mit Sonderbedeutung in JavaScript entsprechend escapen kannst.

    Oder gibt es da eine pfiffigere Methode?

    Wenn du HTML-Code ins Dokument einfuegen willst, dann nutze bspw. die innerHTML-Eigenschaft eines Elements.

    MfG ChrisB

    --
    "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
    1. Hi ChrisB,

      Oder gibt es da eine pfiffigere Methode?

      Wenn du HTML-Code ins Dokument einfuegen willst, dann nutze bspw. die innerHTML-Eigenschaft eines Elements.

      ah, danke. An die Eigenschaft hab ich nicht gedacht. Werde ich mal ausprobieren.

      Grüße
      Christian

  3. echo "<script language="javascript">document.getElementById("status-failure").firstChild.nodeValue = '".$failure."';</script>";

    Das das kein gültiger HTML Code ist weißt du?

    Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben.

    Warum verwendest du nicht einfach das entsprechende Zeichen?

    Struppi.

    1. echo "<script language="javascript">document.getElementById("status-failure").firstChild.nodeValue = '".$failure."';</script>";

      Das das kein gültiger HTML Code ist weißt du?

      Ähm.. nein.

      Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben.

      Warum verwendest du nicht einfach das entsprechende Zeichen?

      Geht ja auch nicht, schau mal ins Beispiel. Die Umlaute werden einfach zu Fragezeichen

      Grüße
      Christian

      1. echo "<script language="javascript">document.getElementById("status-failure").firstChild.nodeValue = '".$failure."';</script>";

        Das das kein gültiger HTML Code ist weißt du?
        Ähm.. nein.

        Dann weißt du es jetzt. Schau einfach noch mal in deine HTML Dokumentation, wie ein script-Tag aussehen muss.

        Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben.

        Warum verwendest du nicht einfach das entsprechende Zeichen?
        Geht ja auch nicht, schau mal ins Beispiel. Die Umlaute werden einfach zu Fragezeichen

        Dann verwendest du unterschiedliche Kodierungen arbeite einfach konsistent in dem du überall die gleiche Kodierung verwendest.

        Struppi.

        1. Also "&...;" wie auch HTML-Tags werden nicht interpretiert und so ausgegeben.

          Warum verwendest du nicht einfach das entsprechende Zeichen?
          Geht ja auch nicht, schau mal ins Beispiel. Die Umlaute werden einfach zu Fragezeichen

          Dann verwendest du unterschiedliche Kodierungen arbeite einfach konsistent in dem du überall die gleiche Kodierung verwendest.

          Das war doch nur, um euch zu zeigen, dass beides nichts hilft. Damit solche Nachfragen wie deine nicht kommen. :)

          Schöne Grüße
          Christian

          1. Dann verwendest du unterschiedliche Kodierungen arbeite einfach konsistent in dem du überall die gleiche Kodierung verwendest.

            Das war doch nur, um euch zu zeigen, dass beides nichts hilft. Damit solche Nachfragen wie deine nicht kommen. :)

            Was war? Das du unterschiedliche Kodierungen verwendest?

            Struppi.