|
|
|
| Всем привет, вообщем проблема в следущем:
на странице есть 2 выпадающих списка и при изменении значения в одном списке через ajax подгружаются соответствующие значения для другого списка. замена элементов 2-го списка выглядет примерно так:
document.getElementById('citys').innerHTML=http_request.responseText;
|
http_request - это экземпляр XMLHttpRequest.
все работает нормально, но если в тегах <option> английские буквы или цифры. Но у меня там должны быть наши русские слова, а они отображаются вот так:
������
|
что с этим делатЬ? | |
|
|
|
|
|
|
|
для: parczynski
(30.11.2007 в 19:38)
| | а уменя такая же проблема - только ромбы ромбы | |
|
|
|
|
|
|
|
для: Port_Artur1
(30.11.2007 в 21:50)
| |
автор: coloboc66 (11.11.2007 в 22:00) письмо автору
Всё делайте в UTF-8. И не нужно ничего перекодировать.
|
или
автор: Саня (07.11.2007 в 10:13) письмо автору
Вам нужно этот текст закодировать функцией encodeURIComponent().
|
с первым работает - всё нормально
Но всё таки!!!!!!!!!!!!!!1
вопрос как encodeURIComponent()-дить в вызываемом файле такое:
echo("
<tr>
<td width=\"25\" height=\"25\" valign=\"top\" class=\"condition\"><input type=\"checkbox\" name=\"zx_$zo_n[$t]\" value=\"YES\"></td>
<td width=\"242\" valign=\"top\" class=\"condition\"><a href=\"http://www.$d.$zo_n[$t]\" >$en.$zo_n[$t]</a></td>
<td width=\"122\" valign=\"top\" class=\"condition\"><a href=”#$check” onclick=\"myFunc ('$check'); return false\">Привет</a></td>
</tr>
");
$check++;}
}
|
вот так не катит
echo( encodeURIComponent("<tr>
<td width=\"25\"...........
|
| |
|
|
|
|
|
|
|
для: Port_Artur1
(30.11.2007 в 22:24)
| | это функция js, а не php | |
|
|
|
|
|
|
|
для: bronenos
(30.11.2007 в 23:46)
| | Прочитал сатью но не пойму как её применить к моему примеру
http://xhtml.ru/2006/05/25/encodestring/
Подскажите. Ввызываемом файле у меня нет JS? Да он там в принципе и не нужен,хотя если надо в вданном примере то обязательно добавлю, тогда как воспользоваться этой статьёй на моём примере хочу чтобы всё было в 1251 а не в UTF-8
Не я один такой судя по многочисленным темам данного форума - нужен совет! | |
|
|
|
|
|
|
|
для: Port_Artur1
(01.12.2007 в 10:46)
| | 1)Нужно ковертировать строку следующим образом:
$string="Люди размножаются трением.";
$string=iconv("utf-8","windows-1251",$string); //перевели из utf в windows или можно наоборот
вопрос если вызываемый файл в 1251
это надо делать в нём или уже в файле котый вызывает его! | |
|
|
|
|
|
|
|
для: Port_Artur1
(01.12.2007 в 10:57)
| | В нём. | |
|
|
|
|
|
|
|
для: coloboc66
(01.12.2007 в 13:01)
| | encodeURIComponent() возвращает то же самое, функции iconv() в php у меня вообще нет, и выводятся у меня тоже ромбики со знаками вопроса, просто в посте вместо них из код. | |
|
|
|
|
|
|
|
для: parczynski
(30.11.2007 в 19:38)
| | И еще такая беда (не совсем в тему, но новую из-за этого создавать не хочется)
у меня по всей видимости кэшуруются ответы на запросы аякс. то есть если я делаю запрос к файлу ajax.php, затем изменяю файл ajax.php и повторяю запрос, то выводится результат предыдущего запроса. приходится оперу перезагружать :( | |
|
|
|
|
|
|
|
для: parczynski
(01.12.2007 в 18:54)
| | добавьте в запрос в гет параметр
"&"+Math.round(Math.rand() * 1000)
|
если нет iconv попробуйте mb_convert_encoding, параметры ровно в обратной последовательности | |
|
|
|
|
|
|
|
для: bronenos
(01.12.2007 в 19:23)
| | mb_convert_encoding тоже нет :(
пробовал
<?php echo convert_cyr_string("<option value=\"1\">Привет","w","k") ?>
|
но результат тот же - ромбики. может все таки в javascipt что-то не так. привожу скрипт:
function makeRequest(url) {
var http_request = false;
if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/html');
}
} 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('Невозможно создать экземпляр класса XMLHTTP');
return false;
}
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('GET',"text.php?"+Math.round(1000), true);
http_request.send(null);
}
function alertContents(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById('citys').innerHTML=http_request.responseText;
} else {
alert('С запросом возникла проблема.');
}
}
}
|
текст text.php приведен выше
И еще если использовать не innerHTML а innerTEXT, то отображаются русские буквы, но это естественно не подходит | |
|
|
|
|
|
|
|
для: parczynski
(01.12.2007 в 20:02)
| | В серверном скрипте нужно запрещать кэширование. А если у вас вместо текста выводятся "ромбики", значит, не совпадают кодировки на сервере и в браузере. Потому и твердят вам сотню раз: "Если вы не чуствуете себя с аяксом на Ты, работайте в UTF-8".
Мля - вот эта тема о проблеме кодировок в аяксе на форуме уже раз 100 проходила, так нет же: каждый, кто за аякс не ухватится, начинает её опять поднимать. Поучите теорию сначала, а потом беритесь. | |
|
|
|
|
|
|
|
для: coloboc66
(01.12.2007 в 21:56)
| | 1 А зачем вообще нужны подобные форумы, если бы все были бы знакомы с технологиями WEB на ТЫ???
2 В тех материалах об аякс которыми пользовался я не было ничего про подобные проблемы
3 Вообще русский текст передается нормально, проблемы появляются когда я вставляю его в innerHTML. | |
|
|
|
|
|
|
|
для: coloboc66
(01.12.2007 в 21:56)
| | и кстати если в опере поставить кодировку UTF-8, то эта надпись все равно отображается как ромбики, и остальной текст тогда тоже | |
|
|
|
|
|
|
|
для: parczynski
(01.12.2007 в 23:37)
| | в яваскрипт исправил
http_request.overrideMimeType('text/html; charset=windows-1251');
|
в text.php теперь
<?php
header("Content-Type: text/html; charset=windows-1251");
echo "<option value=\"1\">праfивет";
?>
|
все работает | |
|
|
|
|
|
|
|
для: parczynski
(01.12.2007 в 23:42)
| | Слава Богу! | |
|
|
|