Проблем с енкодинг и AJAX валидация

emagi

Registered
КОлко ли не го мъчих следното, но така и не можах да намеря решение.Вижте тук:
ЦЪК.Направил съм го ,за да ви покажа какво имам в предвид.Имам 2 файла - proba.php и check.php.
Ето и кодовете на proba.php:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<script type="text/javascript">

      var xmlHttp = false;

      function pageOnLoad()
      {
            // create xmlHttp object
            if (window.XMLHttpRequest)
            {
                  // Mozilla / Firefox
                  xmlHttp = new XMLHttpRequest();
            }
            else if (window.ActiveXObject)
            {
                  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else
            {
                  alert('Вашият браузър не поддържа AJAX!');
                  exit();
            }
      }

      function validatefield(el)
      {
            url = "http://emagi.host-bg.info/check.php?" + el.id + "=" + encodeURIComponent(el.value);
            div = document.getElementById(el.id + '_result');
            xmlHttp.open('GET', url, true);
            xmlHttp.onreadystatechange = function() {
              if (xmlHttp.readyState == 4)
                  {
                  div.innerHTML = xmlHttp.responseText;
              }
            }
            xmlHttp.send(null);
      }
      function validatepass(el)
      {
            var pass1 = document.getElementById('pass1').value;
            url = "http://localhost/check.php?pass1="+encodeURIComponent(pass1)+"&" + el.id + "=" + encodeURIComponent(el.value);
            div = document.getElementById(el.id + '_result');
            xmlHttp.open('GET', url, true);
            xmlHttp.onreadystatechange = function() {
              if (xmlHttp.readyState == 4)
                  {
                  div.innerHTML = xmlHttp.responseText;
              }
            }
            xmlHttp.send(null);
      }

</script>
</head>

<body onload="pageOnLoad();">
<form method="get" action="check.php">
    <table width="0" border="0" cellpadding="0" cellspacing="1">
  <tr>
    <td class="register">ггг<span style="color:red">*</span></td>
    <td class="form1"><input type="text" name="name" onblur="validatefield(this);" id="name" tabindex="1" size="12"/></td><td class="ajax"><div id="name_result" align="left"></div></td>
    </tr>
      <tr>
            <td><input type="submit" value="Send" />
            </td>
      </tr>
</table>
</form>
</body>
</html>

и съответно на check.php:
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>
<?php
$text = $_GET['name'];
echo $text."<br />";
$var = !preg_match("/[^a-zA-Zа-яА-Я ]/", $text) ? 'Success' : 'Wrong';
echo $var;
?>
</body>
</html>
Та ето и малко обяснение.При въвеждане на текст в полето, когато се махне курсова от полето, то бива валидирано чрез AJAX с помоща на файла check.php, където се намира и php скрипта,който проверява.Пробвайте сами да въведете нещо на кирилица!.
Едно показва при валидацията, а ако натиснете бутона SUBMIT, съвсем друг е резултата.Нарочно съм напрвил съдържанието на полето да се изпраща по метода GET към същата страница, която и фактически валидира!
Някой може ли да ми обясни защо е така?
 
Сега стана пък следното, я хрърлете един поглед ТУК
(трябва да натиснете отметката и после бутона)
САМо първото поле(Собствено име) ползвам за пример:като въведе нещо на кирилица и махна мишока, ми дава едни йероглифи и естествено Wrong.Когато натисна бутона Изпрати пак ми дава Wrong , но този път ми изписва правилно низа от букви на кирилиза.Двата файла са UTF-8 without BOM,само съм оставил:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
В примера, който ви показах по-роге всичко стана, тук НЕ
 
РАботя с програмата EditPlus3.
КАк мога с Notepad да избирам encoding-а?Там няма поле за избор на encoding.
 

Back
Горе