powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ajax русские буквы
15 сообщений из 15, страница 1 из 1
ajax русские буквы
    #33526336
topol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Делаю живой поиск при помощи AJAX.
Броузер Опера 8.51
Страница в кодировке windows-1251.
Есть строка ввода. В неё вводятся русские буквы, а на вход в файл php приходит какая-то ерунда из разных символов.
Если ввести цифры всё работает и поиск нормально отрабатывает. И результат выдаётся в нормальном виде.

Помогите разобраться в чём дело.

Вот код html:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
<html>
<head>

</head>
<script type="text/javascript" language="javascript">
var http_request = false;
function makeRequest(url, snd) {
http_request = false;

if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = function(){
	document.getElementById('z').innerHTML="<h4>Результаты поиска</h4><p>"+http_request.responseText;
};
http_request.open('POST', url, true);
http_request.send(snd);
}

function alertContents() {
if (http_request.readyState ==  4 ) {// COMPLETED
if (http_request.status ==  200 ) {// HTTP STATUS
/*вывод результата*/	
	document.getElementById('z').innerHTML=http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<body>
Введите слово
<input type="text" name="web" size="60" onkeyup="makeRequest('localhost/test.php', web.value)">
<div id="z">
</p>
</div>

</body>
</html>

В php файле использую
Код: plaintext
$x = $GLOBALS["HTTP_RAW_POST_DATA"];
для получения значения из поля ввода.

Заранее спасибо.
...
Рейтинг: 0 / 0
ajax русские буквы
    #33527937
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=цштвщцы-1251'
http_request.open('POST', url, true);
// http_request.send(snd);
http_request.send( encodeURIComponent( snd) );
...
Рейтинг: 0 / 0
ajax русские буквы
    #33527945
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, очепятка

Код: plaintext
1.
2.
3.
http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=windows-1251'
http_request.open('POST', url, true);
// http_request.send(snd);
http_request.send( encodeURIComponent( snd) );
...
Рейтинг: 0 / 0
ajax русские буквы
    #33530360
topol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло. Вообще никаких ответов.
...
Рейтинг: 0 / 0
ajax русские буквы
    #33532590
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите логи... что-нибудь где-нибудь не так. Во всяком случае, мы что видим, то и комментируем. Комментируем только то, что видим.
...
Рейтинг: 0 / 0
ajax русские буквы
    #33535693
madgol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
topolНе помогло. Вообще никаких ответов.
Попробуй с рускими буквами что-нибудь вроде функции php urlencode .Мне помогало. Только наверное надо найти аналог в JavaScript
...
Рейтинг: 0 / 0
ajax русские буквы
    #33537752
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
madgolПопробуй с рускими буквами что-нибудь вроде функции php urlencode .Мне помогало. Только наверное надо найти аналог в JavaScript

encodeURIComponent и есть аналог. Я же все написал.
...
Рейтинг: 0 / 0
ajax русские буквы
    #33538622
madgol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда раберитесь с кодировкой обрабатывающего скрипта, я попробовал test.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
	header('Content-Type: text/xml');
	echo '<?xml version="1.0" encoding="utf-8" standalone="yes"?>';
	echo '<response>';
	echo '<content><![CDATA[';	
	$x = $GLOBALS["HTTP_RAW_POST_DATA"];
	echo $x;
	echo ']]></content>';
  	echo '</response>';	
?>
все работает без urlencode, если же использовать windows-1251, то после приема надо сделать decodeURIComponent(result)
...
Рейтинг: 0 / 0
ajax русские буквы
    #33564906
ыуьут
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
там кодировка уникод
...
Рейтинг: 0 / 0
ajax русские буквы
    #34116572
Я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я
Гость
ыуьуттам кодировка уникод

ага, надо файлы в utf-8 сохранять, и все будет хорошо с русским и прочими языками.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
ajax русские буквы
    #37499315
EcoloRa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
ajax русские буквы
    #37510967
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ыуьуттам кодировка уникод

ага, надо файлы в utf-8 сохранять, и все будет хорошо с русским и прочими языками.
это же неспортивное поведение!
...
Рейтинг: 0 / 0
ajax русские буквы
    #37511060
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netwindЯпропущено...


ага, надо файлы в utf-8 сохранять, и все будет хорошо с русским и прочими языками.
это же неспортивное поведение! нормальное поведение.
по хорошему всё должно быть в utf8, тогда не будет идиотских затруднений.
...
Рейтинг: 0 / 0
ajax русские буквы
    #37511080
netwind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечnetwindпропущено...

это же неспортивное поведение! нормальное поведение.
по хорошему всё должно быть в utf8, тогда не будет идиотских затруднений.
у других кож работает и в win-1251 ТОЖЕ
...
Рейтинг: 0 / 0
ajax русские буквы
    #37524587
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HTTP протокол имеет служебные заголовки =)
проверить не могу но возможно поможет
header("Content-type: text/plain; charset=windows-1251");
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ajax русские буквы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]