Показать сообщение отдельно
  #1 (permalink)  
Старый 11.10.2010, 20:56
Новичок на форуме
Отправить личное сообщение для ShootNik Посмотреть профиль Найти все сообщения от ShootNik
 
Регистрация: 11.10.2010
Сообщений: 7

Не та кодировка при изменении элементов DOM, загружаемых через ajax
Проблема подробнее:

Файл index.html:
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="geoip.js"></script>
  </head>
  <body>
    <div id="add_ads"><a href='javascript:void(null)'>Добавить объявление</a></div>
    <div id="geoip_ads">text</div>
  </body>
</html>


В файле geoip.js есть функция:
$('#add_ads').click(function() {
          $.post('show_ads.php?add=add', function(data) { $('#geoip_ads').html(data);})


В файле show_ads.php:
case 'add': 
    echo '
    <script type="text/javascript" src="check_reg.js"></script>
      <form id="regform" target="_self" style="margin: 0px;" name="regform" method="post" action="show_ads.php">
          <div id="authtitle">Регистрация</div>
        <table cellpadding="2" cellspacing="2" align="center" id="authtable">
          <tr>
            <td id="regtd">Логин:</td>
            <td id=""><input name="login" type="text" id="logininput" onchange="checkLogin()" autocomplete="off" /><div id="logincheck"> &nbsp<br>&nbsp</div></td>
          </tr>
          ...
       </form>';
  break;


В скрипте check_reg.js функция:
function checkLogin(){
          var userlogin = $("#logininput").attr('value');
          var reg= /^[a-zA-Z0-9_]{2,15}$/ ;
          if (reg.test(userlogin)) {
            $("#logincheck").load("/geoip/show_ads.php", {add: "checklogin", data:userlogin});          
          } else {
            if (userlogin.length < 2){
              $("#logincheck").html('<span style="color:red">Минимальная длина = 2</span>'); 
            } 
   ....еще условия...
          }
        }


Собственно, проблема - когда я ввожу в поле логин больше двух символов и он проверяется на сервере, ответ приходит в cp1251 и отображается нормально, а когда меньше двух символов, проверка проходит в ява-скрипте и
$("#logincheck").html('<span style="color:red">Минимальная длина = 2</span>');
почему то получается в utf-8 кракозябрами. Если эту форму не подгружать через ajax, то работает в любом случае.
Помогите, как сделать что бы всегда cp1251 была?
Ответить с цитированием