Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX проблема с кодировкой русских симво 
V
    Опции темы
americanets
Дата 24.7.2007, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

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




делаю так: 

Код

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<script language="javascript" type="text/javascript">
var request = false;
   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = false;
       }  
     }
   }

   if (!request)
     alert("Error initializing XMLHttpRequest!");

 function getCustomerInfo() {
     var phone = document.getElementById("phone").value;
     var url = "test.php?adr=" + escape(phone);
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
   }

 function updatePage() {
     if (request.readyState == 4) {
       if (request.status == 200) {
         var response = request.responseText.split("|");
         document.getElementById("otvet2").innerHTML = response[0];
         document.getElementById("address").innerHTML =
           response[1].replace(/\n/g, "<br />");
       } else if (request.status == 404) {
         alert ("Requested URL is not found.");
       } else if (request.status == 403) {
         alert("Access denied.");
       } else
         alert("status is " + request.status);
     }
   }
</script>


<p>номер:<input type="text" size="14" name="phone" id="phone" onChange="getCustomerInfo();"></p>
<p>ответ 1 :</p>
<div id="address"></div>
<p>ответ 2:</p>
<div id="otvet2"></div>
</body>
</html>





в test.php



Код

<?php
echo ''.$_GET['adr'].' AJAX|<font color="#FF0000"><strong>PROBA</strong></font>';
?>


при вводе русских букв получаю вот такую тарабарщину %u044B , и реально ли сделать с помощью Ajax чтоб не в div подставлялись значения , а менять сам код html, создавать таблицы и тому подобное без перезагрузки страницы


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
mishaSL
Дата 24.7.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

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



По поводу кодировки посмотрите следующие ссылки:
http://forum.vingrad.ru/index.php?showtopi...t&p=1038055
http://forum.vingrad.ru/index.php?showtopi...t&p=1181309

Этот вопрос уже поднимался неоднократно.


Цитата(americanets @  24.7.2007,  17:41 Найти цитируемый пост)
реально ли сделать с помощью Ajax чтоб не в div подставлялись значения , а менять сам код html, создавать таблицы и тому подобное без перезагрузки страницы 

Реально. Самый простой вариант в этот самый div и кладите ваш HTML код.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
americanets
Дата 24.7.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

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



вобщем то решил так 

Код

<?php
$agent=getenv("HTTP_USER_AGENT");
if(strlen($agent)>2&&!strstr($agent,'MSIE'))
{
echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';
}
else //для IE
{
header("Content-type: text/plain; charset=windows-1251");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
}
echo ''.$_GET['adr'].' AJAX|<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr> 
    <td>'.($_GET['adr']*4).'</td>
    <td>'.($_GET['adr']*8).'</td>
    <td>'.($_GET['adr']*16).'</td>
  </tr>
  <tr>
    <td>'.($_GET['adr']*32).'</td>
    <td>&nbsp;</td>
    <td>'.($_GET['adr']*64).'</td>
  </tr>
  <tr>
    <td>'.($_GET['adr']*128).'</td>
    <td>'.($_GET['adr']*256).'</td>
    <td>'.($_GET['adr']*512).'</td>
  </tr>
</table>';
?>

var url = "test.php?adr=" + phone;


убрал escape а то забыл про него, таблица делается, но не совсем то нужно чтоб страницу можно было сохранить 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
Golda
Дата 25.7.2007, 06:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

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



americanets, AJAX просто позволяет Вам, не перегружая страницу, получить новые данные. Вы получаете все, что выводите скриптом, к которому обращаетесь AJAX-ом, в  request.responseText. А дальше вольны делать все, что позволяет javascript. У Вас полный контроль над DOM. Можете создавать элементы, удалять, менять их содержимое. Не рассматривайте вывод своего скрипта как то, что появится на странице. Рассматривайте его как новые данные, которые можно распарсить в javascript и дальше использовать средствами javascript для любых изменений страницы.

Поэтому, например, не нужно заботиться о Content-type заголовке. Этот заголовок нужен, чтобы клиент разобрался, какой тип данных ему передают, как его интерпритировать и отображать. Но в данном случае клиент - это не броузер, а Ваш javascript. А он знает, какие данные ожидает получить и что с ними дальше делать

Это сообщение отредактировал(а) Golda - 25.7.2007, 06:59


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
americanets
Дата 25.7.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1100
Регистрация: 27.9.2006

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



понятно, проблему решил, перехожуна utf-8 полностью чтоб в дальнейшем проблем не было 


--------------------
Пусть популярную музыку слушают те, среди кого она популярна
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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