JavaScript Statt ' wird auf einmal " angezeigt

obilaner

Lt. Junior Grade
Registriert
Apr. 2011
Beiträge
389
Hallo.

Ich wollte eine normale Ajax Query machen und HTML zurückgeben lassen um Sie auf Seite 1 anzeigen zu lassen. Dabei wird seit ich nicht mehr in meinem Hauptprojekt arbeite statt meinefunktion('string') auf einmal meinefunktion("string" ) angezeigt. Vorher ist mir das noch nie passiert.

Erstens: Wieso macht er das; und wieso machte er das vorher nicht (Im anderen Projekt und jesesmal zuvor)
Zweitens: Was könnt ich tun?

PHP Code:
Code:
foreach($meinesticker[$substicker] as $sticker){    
        echo "<img src='$sticker' class='smiley' onclick='addsticker(".'"'.$sticker.'"'.")'></img>";    
    }

JS Code:
Code:
$.post("somesite.php",{lesesmileys: "init"}, function(re){             
                $("#Nachrichten-Smileyfenster").html(re);
            });
 

Anhänge

  • Bildschirmfoto_2023-10-30_16-15-24.jpg
    Bildschirmfoto_2023-10-30_16-15-24.jpg
    49,1 KB · Aufrufe: 105
Das sind sogenannte "HTML Entities" die nicht richtig dargestellt werden. Stichwort: Charset/Zeichenkodierung.
 
Weisst du wieso sie hier nicht richtig dargestellt werden und in dem anderen projekt schon? Hat es was damit zu tun ob man UTF8 anweist am anfang der Datei oder so? Ansonsten: In JS decodieren?
 
Ich stecke in deinem Projekt nicht drin aber ja einen Charset wie z.B. UTF-8 solltest du setzen. Du kannst auch wie schon vermutet das ganze dann in JS decodieren. Du müsstest mehr von deinem Projekt preisgeben.
 
Hab es probiert, es ist bereits gesetzt. Habe mich vertan.

Nun habe ich festgestellt das das was in 're' zurück kommt aus der Ajax Anfrage über alert(re) völlig richtig dargestellt wird. Also statt mit &quot ; werden " " angezeigt....

Wenn ich es über $("selector").html() weitergebe, dann nicht.

Bringt in dem fall eine Char conversion etwas? Weil der String ist ja bereits korrekt, nur die .html() funktion gibt es falsch weiter
 
Ja du könntest versuchen die Chars in JS zu dekodieren, ob das die beste Methode ist sei mal dahingestellt.
 
Habe es jetzt gelöst indem ich einfach das Zeichenpaar umgestellt habe von Echo " auf Echo ', sowie alles was danach kommt.
 
Zurück
Oben