echo $begrüßung;
Beim Fehlersuchen ist es wichtig, genau zu beobachten. Wenn du andere bei der Fehlersuche um Rat fragst, ist es ebenfalls wichtig, genau zu beschreiben. Zwei Beispiele:
[...] sind alle Umlaute futsch.
Anstelle eines Zeichens, für das es in einer bestimmten Kodierung keine Codes gibt, kann ein Ersatzzeichen verwendet worden sein. Dieser Vorgang ist irreversibel, solange man nicht aus dem Kontext erkennen kann, was das für ein Zeichen hätte sein sollen. Es kann aber auch einfach nur eine andere dir unbekannte Kodierung sein, und du betrachtest dir den Text mit der falschen Dekodierung. Meist kann ein geübtes Auge feststellen, welche Kodierung vorliegt, und kann dann genauere Rückschlüsse auf das vorliegende Problem ziehen.
[...] aber beim importieren [...]
Hier habe ich nicht einfach nur zu wenig zitiert. Es gelang mir nicht, aus dem restlichen Kontext zu erkennen, von wo nach wo du hier etwas importierst. Im Titel erwähnst du AJAX, im restlichen Text tauchen aber nur die allgemeinen Orte "php" und "js" auf. Der eigentliche Datenfluss erschließt sich mir nicht genau. Deshalb kann ich nur allgemein antworten, in der Hoffnung, dass du das Prinzip verstehst und darauf dann ein fehlerfreies System erstellen kannst.
Es gibt mittlerweile diverse Zeichenkodierungssysteme. Es ist technisch unmöglich, aus einem vorliegenden Text exakt die verwendete Kodierung zu ermitteln. Deshalb muss der Absender dem Empfänger die verwendete Kodierung mitteilen, wenn letzterer nicht raten oder seine eigene Default-Einstellung verwenden soll, was zu beliebigen Ungenauigkeiten führen kann. Im Webumfeld wird die Kodierung in der charset-Angabe des HTTP-Headers namens Content-Type angeführt. Ersatzweise gibt es in HTML das gleichnamige http-equiv-Meta-Element. An einigen Stellen ist jedoch eine Kodierung unveränderlich festgelegt. Das betrifft den XMLHttpRequest. Dort wird generell UTF-8 als Kodierung verwendet. Das musst du als Empfänger (z.B. in PHP) berücksichtigen. Wenn du nur auf die deutschen Umlaute Wert legst, und dir andere Zeichen außerhalb von ISO-8859-1 bzw. Latin1 verlustig gehen können, kannst du die empfangenen Werte mit utf8_decode() nach ISO-8859-1 umkodieren. Wenn du einen Request beantwortest, kannst du die Werte mit utf8_encode() behandeln. Oder du informierst den Empfänger im erwähnten HTTP-Header über die verwendete Kodierung.
Wenn dir aber auch die anderen Zeichen wichtig sind (z.B. auch das €-Zeichen) solltest du dir überlegen, ob du nicht generell auf UTF-8 umstellst. Es kann dir auch passieren, dass jemand deutsche „Anführungszeichen“ oder ein … (Auslassungszeichen) verwendet, weil er den Text in Word vorschreibt, und das so frei ist, diese Zeichen autokorrigierend aus "..." zu erstellen. Diese Zeichen sind nicht in ISO-8859-1 enthalten und gehen beim utf8_decode() verloren (werden durch ein Fragezeichen ersetzt). Probleme dieser Art kannst du vermeiden, wenn du die Universal-Kodierung UTF-8 verwendest. Das musst du dann aber durchgängig auf der gesamten Verarbeitungslinie berücksichtigen, sonst hast du ja wieder umkodierungsbedingte Verluste.
echo "$verabschiedung $name";