Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загруска страницы методом POST (JavaScript), Не отображает русский язык, только англ. 
:(
    Опции темы
911
Дата 25.8.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.8.2006

Репутация: нет
Всего: нет



Значит суть и проблема такова. Имееться страничка index.html, в левой части кнопочки а в правой пустое место, на нем и отображается наша страничка методом XML POST, без ее перезагрузки. В коде использую javaScript. 
Вот значит кнопка 
Код

<SPAN onmouseover="lightup('pic10')" style="CURSOR: pointer" onclick="LINK_ajax('main.htm','main_div');" onmouseout="turnoff('pic10')">
<IMG height=57 src="image/main-1.gif" width=323 border=0 
name=pic10></SPAN> 

Сделана графический, с элементом onmouseover и onmouseout. при нажатии получаем: onclick="LINK_ajax('main.htm','main_div');" ,
вот тут и запускается мой скрипт  smile 

Код

function LINK_ajax(http, div_name) { //funзгo para links

    var LINK_xmlhttp = false;

    try { LINK_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) { try { LINK_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) { try { LINK_xmlhttp = new XMLHttpRequest(); }
    catch (e) { LINK_xmlhttp = false; }}}
    if (!LINK_xmlhttp) return null;

    document.getElementById('load_div').style.visibility="visible";
    switch_banner();
    

    LINK_xmlhttp.open("GET", http, true);

    LINK_xmlhttp.onreadystatechange = function() {
        if (LINK_xmlhttp.readyState == 4) {
            document.getElementById('load_div').style.visibility="hidden";

            if (LINK_xmlhttp.responseText.indexOf("<script type=\"text/javascript\">") > -1) {
                var x = LINK_xmlhttp.responseText.indexOf("<script type=\"text/javascript\">") + "<script type=\"text/javascript\">".length;
                var y = LINK_xmlhttp.responseText.indexOf("</script>") - x;
                eval(LINK_xmlhttp.responseText.substr(x, y));
            }

            if (LINK_xmlhttp.responseText.indexOf('ALERT|') > -1) 
                window.alert(LINK_xmlhttp.responseText.substr(LINK_xmlhttp.responseText.indexOf('|') + 1));
            else
                document.getElementById(div_name).innerHTML = LINK_xmlhttp.responseText + ' ';
        }
    }

    LINK_xmlhttp.send(null);  

    return false;
}

function POST_ajax(http, div_name, frm_name) { //funзгo para posts

    var POST_xmlhttp = false;
    var frm = false
    var url = "";


    try { POST_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e) { try { POST_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) { try { POST_xmlhttp = new XMLHttpRequest(); }
    catch (e) { POST_xmlhttp = false; }}}
    if (!POST_xmlhttp) return null;

    frm = document.getElementById(frm_name);

    document.getElementById('load_div').style.visibility="visible";

    url = "frm_name=" + frm_name;

    for (i = 0; i < frm.elements.length; i++) {
        frm.elements[i].disabled = true;
        if (frm.elements[i].type == "checkbox") {
            if (frm.elements[i].checked)
                frm.elements[i].value = 1;
            else
                frm.elements[i].value = 0;
        }
        url = url + "&" + frm.elements[i].name + "=" + escape(frm.elements[i].value);
    }


    POST_xmlhttp.open("POST", http, true);

    POST_xmlhttp.onreadystatechange = function() {
        if (POST_xmlhttp.readyState == 4) {
            document.getElementById('load_div').style.visibility="hidden";

            for (i = 0; i < frm.elements.length; i++) {
                if (frm.elements[i].type == "checkbox")
                    frm.elements[i].checked = false;
                if (frm.elements[i].type == "password")
                    frm.elements[i].value = "";
                frm.elements[i].disabled = false;
            }

            if (POST_xmlhttp.responseText.indexOf("<script type=\"text/javascript\">") > -1) {
                var x = POST_xmlhttp.responseText.indexOf("<script type=\"text/javascript\">") + "<script type=\"text/javascript\">".length;
                var y = POST_xmlhttp.responseText.indexOf("</script>") - x;
                eval(POST_xmlhttp.responseText.substr(x, y));
            }

            if (POST_xmlhttp.responseText.indexOf('ALERT|') > -1) {
                var x = POST_xmlhttp.responseText.indexOf('ALERT|') + "ALERT|".length;
                var y = POST_xmlhttp.responseText.indexOf('|ENDALERT') - x;
                window.alert(POST_xmlhttp.responseText.substr(x , y));
            } else
                document.getElementById(div_name).innerHTML = POST_xmlhttp.responseText + ' ';
        }
    }

    POST_xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    POST_xmlhttp.setRequestHeader("Content-length", url.length);
    POST_xmlhttp.setRequestHeader("Connection", "close");
    POST_xmlhttp.send(url);  

    return false;
}



Значит заранее готовая страничка, в моем случае это main.htm, загружается в отведеном месте... Для него я использую даный код:
Код

<DIV class=style1 id=main_div></DIV>
<DIV id=load_div><SPAN class=style1>&nbsp;Loading...&nbsp;</SPAN> </DIV>
<script type=text/javascript>LINK_ajax('main.htm', 'main_div');</SCRIPT>

Вот тут то и начинается вся проблема  smile  Если страница main.htm, имеет русский текст, то он отобразиться в виде Вопросов "??????". С английским все нормально! Как сделать нормальное отображение русского текста?  smile 
PM MAIL   Вверх
Black
Дата 25.8.2006, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: нет
Всего: 45



Выводи страницу main.htm и отсылай заголовок с указанием ЕЕ кодировки!!!

Например в php это можно сделать так:

Цитата

<?
header("Content-type: text/plain; charset=windows-1251");
?>

содержимое main.htm


разумеется, поставь свою кодировку, если она не в windows-1251
Тогда проблема с некорректным отображением русских символов должна исчезнуть.




--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
911
Дата 25.8.2006, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.8.2006

Репутация: нет
Всего: нет



Цитата

Выводи страницу main.htm и отсылай заголовок с указанием ЕЕ кодировки!!!

Например в php это можно сделать так:


Цитата 

<?
header("Content-type: text/plain; charset=windows-1251");
?>

содержимое main.htm
 



разумеется, поставь свою кодировку, если она не в windows-1251
Тогда проблема с некорректным отображением русских символов должна исчезнуть.


Что-то не особо понял smile  Я в PHP полный 0, я его не знаю, по этому делаю страничке на HTML с Использованием JavaScript. Жаль давно изусчал все это, и уже оч много забыл... да и практики давно небыло...
Значит Вы предлогаете вствить Этот код в main.htm, но вставив его туда, проблема не исчезла все то же саомое...=\ 
PM MAIL   Вверх
911
Дата 26.8.2006, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 25.8.2006

Репутация: нет
Всего: нет



Вобщем долго парился... не чего не выходит... общался со знающими людьми, но может они и не особо знающиеся... но пришли к выводу, что делать какие изменения на самой страничке main.htm или пусть даже main.php нет! тут надо что то делать в коде... 
//<meta http-equiv="Content-Type" content="text/html" charset=windows-1251">'); -даже такой подход изменения кодировки в JS не подошел.
- кто нибудь может внясти поправку в коде JS?  smile 
Помогите пожалуйста, а то я уже мучаюсь с ним несколько дней, думал сам справлюсь.... увы не расчитал силы  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.