Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ajax русские буквы / 15 сообщений из 15, страница 1 из 1
06.02.2006, 16:06
    #33526336
topol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Всем привет!
Делаю живой поиск при помощи 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
07.02.2006, 11:15
    #33527937
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Код: 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
07.02.2006, 11:16
    #33527945
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Пардон, очепятка

Код: 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
08.02.2006, 09:53
    #33530360
topol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Не помогло. Вообще никаких ответов.
...
Рейтинг: 0 / 0
08.02.2006, 20:49
    #33532590
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Смотрите логи... что-нибудь где-нибудь не так. Во всяком случае, мы что видим, то и комментируем. Комментируем только то, что видим.
...
Рейтинг: 0 / 0
10.02.2006, 00:56
    #33535693
madgol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
topolНе помогло. Вообще никаких ответов.
Попробуй с рускими буквами что-нибудь вроде функции php urlencode .Мне помогало. Только наверное надо найти аналог в JavaScript
...
Рейтинг: 0 / 0
10.02.2006, 16:46
    #33537752
М.Голованов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
madgolПопробуй с рускими буквами что-нибудь вроде функции php urlencode .Мне помогало. Только наверное надо найти аналог в JavaScript

encodeURIComponent и есть аналог. Я же все написал.
...
Рейтинг: 0 / 0
11.02.2006, 10:34
    #33538622
madgol
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
Тогда раберитесь с кодировкой обрабатывающего скрипта, я попробовал 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
25.02.2006, 23:51
    #33564906
ыуьут
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
там кодировка уникод
...
Рейтинг: 0 / 0
09.11.2006, 15:31
    #34116572
Я
Я
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax русские буквы
ыуьуттам кодировка уникод

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

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


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

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


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