PHP не хочет создавать xml документ
param="name="+document.getElementById("name").value
xmlHttp.open("POST", "script.php", true);
xmlHttp.setRequestHeader("Method", "POST " + "script.php" + " HTTP/1.1");
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(param);
Потом с помощью PHP пытаюсь построить xml документ чтобы отправить его обратно
$domm = new DOMDocument('1.0','WINDOWS-1251');
$response = $domm->createElement('response');
$domm->appendChild($response);
$new = $doc->createElement('name');
$response->appendChild($new);
$res = $doc->createTextNode($_POST['name']));
$name->appendChild($res);
$domm->formatOutput = true;
$xmlString = $domm->saveXML();
header('Content-Type: text/plain; charset=WINDOWS-1251 ');
echo $xmlString;
Проблема в том что не могу разобраться в кодировках если значение $_POST['name']
состоит из английских букв то всё работает
а если русские то дерево не строится, получается
<?xml version="1.0" encoding="WINDOWS-1251"?>
<response>
<name>
при получении в РНР используем urldecode()
а если пытаюсь вывести результат через AJAX
response = xmlHttp.responseText;
alert(response);
то русские буквы не проходят
Со страницы в скрипт всё приходит нормально там обрабатывается тоже нормально, потому что если если не использовать AJAX
а просто отправлять данные с помощью кнопки submit, то ответ в виде новой страницы выводиться правильный с любыми буквами, а при использовании
AJAX технологии
response = xmlHttp.responseText;
alert(response);
русские буквы не проходят JavaScript доходит до русских и стоп
<?xml version="1.0" encoding="WINDOWS-1251"?>
<response>
<name>
2) Как решать проблему с кодировками я уже написал
3) если не помогает - значит проблема не в русских буквах и не в кодировке
Используй для всего UTF-8 кодировку.