PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (10): В начало « ... 2 3 4 5 6 7 8 9 [10]

> Найдено сообщений: 141
Yuriy Отправлено: 23 Июня, 2007 - 12:36:24 • Тема: Загрузить ответ на запрос AJAX в нужный id • Форум: JavaScript & VBScript

Ответов: 6
Просмотров: 4922
Есть несколько объектов. Пусть это будут кнопки. Каждая имеет свой id по шаблону div_x. Нажимаю на одну из кнопок, отсылается запрос на сервер и ответ на запрос должен заменить кнопку, которую мы нажали. Что не получается. id нажатой кнопки я передать могу в функцию AJAX. Но ведь отслеживание того, что запрос выполнен, виден в функции:

PHP:
скопировать код в буфер обмена
  1. function processReqChange_9()
  2.     {
  3.     if(req9.readyState==4 && req9.status==200)
  4.     {
  5.              document.getElementById('div_x').innerHTML = req9.responseText;
  6.     }
  7.   }


а как мне в этой функции узнать id кнопки? То есть, мне надо передать как-то между функциями значение переменной. Несколько туманно объяснил… Вот пример:

PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.  
  5. <script language="JavaScript">
  6.  
  7.     function processReqChange_9()
  8.     {
  9.     if(req9.readyState==4 && req9.status==200)
  10.     {
  11.              document.getElementById('div_'+arg2).innerHTML = req9.responseText;
  12.     }
  13.   }
  14.   function multi_call8(arg1,arg2)
  15.   {
  16.     alert(arg2);
  17.     if(window.XMLHttpRequest)
  18.     {
  19.       req9 = new XMLHttpRequest();
  20.       req9.onreadystatechange = processReqChange_9;
  21.       req9.open("GET",arg1, true);
  22.       req9.send(null);
  23.     } else if (window.ActiveXObject)
  24.     {
  25.       req9 = new ActiveXObject("Microsoft.XMLHTTP");
  26.       if (req9)
  27.       {
  28.         req9.onreadystatechange = processReqChange_9;
  29.         req9.open("GET",arg1, true);
  30.         req9.send();
  31.       }
  32.     }
  33.   }
  34.  
  35. </script>
  36. </head>
  37.  
  38. <body>
  39.  
  40. <input type="button" id="div_1" value="Button 1" onClick="multi_call8('edit.php?a=1','1');">
  41. <br/>
  42. <input type="button" id="div_2" value="Button 2" onClick="multi_call8('edit.php?a=2','2');">
  43.  
  44. </body>
  45. </html>
  46.  


Мне нужно, чтобы по нажатии на одну из кнопок изменилось её содержимое, согласно ответу на запрос. Как видно, id (точнее его часть) я отсылаю вторым параметром и в функции multi_call8 его получаю. А вот как бы его передать теперь в processReqChange_9?
Yuriy Отправлено: 18 Июня, 2007 - 21:13:43 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP

Ответов: 22
Просмотров: 2251
valenok пишет:
осмотрел на ваши функции и коды перекодировок и понял что это нечто грандиозное, аж достойное удивления


Я ведь учусь... Не надо смеяться... Улыбка\n\n(Добавление)
valenok, а всё-таки. Можете объяснить, чего вы там исправили и зачем?
Yuriy Отправлено: 18 Июня, 2007 - 19:23:43 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP

Ответов: 22
Просмотров: 2251
Другое дело! Ребята, огромное вам спасибо! Очень помогли мне!

А на вопрос о тегах code можете ответить?\n\n(Добавление)
valenok пишет:
ух ты.....


valenok, что вы имели ввиду в своём посте?
Yuriy Отправлено: 18 Июня, 2007 - 17:38:05 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP

Ответов: 22
Просмотров: 2251
Спасибо, ребята, за ответы. UserID, вы не поверите, но всё равно не работает Недовольство, огорчение Я вижу выведенный текст, например, таким:

"ЭјЭѕЭ№ С‚ЭµЭєСЃС‚"

, а у вас в функции utf8_win идут такие замены: xD0xB0 и т. п. А что функция будет менять здесь, если совсем другие символы в моей кодировке выше? Очень странно... Или пора ОС переставлять, или я чего-то недопонял.

Ещё раз на всякий случай.

Я заменил в своём коде только содержимое файлы test.php на это:

CODE (text):
скопировать код в буфер обмена
  1. <?
  2.   function utf8_win($s)  
  3.   {  
  4.       $s = str_replace("xD0xB0", "а", $s);  $s = str_replace("xD0x90", "А", $s);  
  5.       $s = str_replace("xD0xB1", "б", $s);  $s = str_replace("xD0x91", "Б", $s);  
  6.       $s = str_replace("xD0xB2", "в", $s);  $s = str_replace("xD0x92", "В", $s);  
  7.       $s = str_replace("xD0xB3", "г", $s);  $s = str_replace("xD0x93", "Г", $s);  
  8.       $s = str_replace("xD0xB4", "д", $s);  $s = str_replace("xD0x94", "Д", $s);  
  9.       $s = str_replace("xD0xB5", "е", $s);  $s = str_replace("xD0x95", "Е", $s);  
  10.       $s = str_replace("xD1x91", "ё", $s);  $s = str_replace("xD0x81", "Ё", $s);  
  11.       $s = str_replace("xD0xB6", "ж", $s);  $s = str_replace("xD0x96", "Ж", $s);  
  12.       $s = str_replace("xD0xB7", "з", $s);  $s = str_replace("xD0x97", "З", $s);  
  13.       $s = str_replace("xD0xB8", "и", $s);  $s = str_replace("xD0x98", "И", $s);  
  14.       $s = str_replace("xD0xB9", "й", $s);  $s = str_replace("xD0x99", "Й", $s);  
  15.       $s = str_replace("xD0xBA", "к", $s);  $s = str_replace("xD0x9A", "К", $s);  
  16.       $s = str_replace("xD0xBB", "л", $s);  $s = str_replace("xD0x9B", "Л", $s);  
  17.       $s = str_replace("xD0xBC", "м", $s);  $s = str_replace("xD0x9C", "М", $s);  
  18.       $s = str_replace("xD0xBD", "н", $s);  $s = str_replace("xD0x9D", "Н", $s);  
  19.       $s = str_replace("xD0xBE", "о", $s);  $s = str_replace("xD0x9E", "О", $s);  
  20.       $s = str_replace("xD0xBF", "п", $s);  $s = str_replace("xD0x9F", "П", $s);  
  21.       $s = str_replace("xD1x80", "р", $s);  $s = str_replace("xD0xA0", "Р", $s);  
  22.       $s = str_replace("xD1x81", "с", $s);  $s = str_replace("xD0xA1", "С", $s);  
  23.       $s = str_replace("xD1x82", "т", $s);  $s = str_replace("xD0xA2", "Т", $s);  
  24.       $s = str_replace("xD1x83", "у", $s);  $s = str_replace("xD0xA3", "У", $s);  
  25.       $s = str_replace("xD1x84", "ф", $s);  $s = str_replace("xD0xA4", "Ф", $s);  
  26.       $s = str_replace("xD1x85", "х", $s);  $s = str_replace("xD0xA5", "Х", $s);  
  27.       $s = str_replace("xD1x86", "ц", $s);  $s = str_replace("xD0xA6", "Ц", $s);  
  28.       $s = str_replace("xD1x87", "ч", $s);  $s = str_replace("xD0xA7", "Ч", $s);  
  29.       $s = str_replace("xD1x88", "ш", $s);  $s = str_replace("xD0xA8", "Ш", $s);  
  30.       $s = str_replace("xD1x89", "щ", $s);  $s = str_replace("xD0xA9", "Щ", $s);  
  31.       $s = str_replace("xD1x8A", "ъ", $s);  $s = str_replace("xD0xAA", "Ъ", $s);  
  32.       $s = str_replace("xD1x8B", "ы", $s);  $s = str_replace("xD0xAB", "Ы", $s);  
  33.       $s = str_replace("xD1x8C", "ь", $s);  $s = str_replace("xD0xAC", "Ь", $s);  
  34.       $s = str_replace("xD1x8D", "э", $s);  $s = str_replace("xD0xAD", "Э", $s);  
  35.       $s = str_replace("xD1x8E", "ю", $s);  $s = str_replace("xD0xAE", "Ю", $s);  
  36.       $s = str_replace("xD1x8F", "я", $s);  $s = str_replace("xD0xAF", "Я", $s);  
  37.       return $s;  
  38.   }  
  39.  
  40. echo utf8_win($_POST["text"]);
  41.  
  42. ?>


Кстати, я решил приколоться и чуточку изменил вашу функцию, согласно моей кодировке, что я вижу. Например:

CODE (text):
скопировать код в буфер обмена
  1. $s = str_replace("Рђ", "А", $s);  
  2. $s = str_replace("Р‘", "Б", $s);  
  3. $s = str_replace("Р’", "В", $s);  
  4. $s = str_replace("Р“", "Г", $s);


и русский текст стал выводиться.

Внимание, вопрос: где я не прав?

И ещё: почему теги code не понимает форум? Или для новичков они отключены?

Спасибо за помощь, ребята! У вас очень уютно на форуме ;)

P. S. Выше реклама от гугла у меня отображается также, как и результат работы моего аякса:

Реклама от Google
Install PHP
News PHP
PHP Example
PHP Manual
Oracle PHP
Yuriy Отправлено: 18 Июня, 2007 - 14:41:32 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP

Ответов: 22
Просмотров: 2251
valenok, спасибо за ответ! Да, я так пробовал делать. И первым, и вторым вариантом. Не работает всё равно. Скриншот окна браузера и меню, где у меня стоит кодировка, прилагаю.
Yuriy Отправлено: 18 Июня, 2007 - 13:47:17 • Тема: Нарушение кодировки при работе с AJAX • Форум: Программирование на PHP

Ответов: 22
Просмотров: 2251
Сделал AJAX запрос на передачу данных серверу методом POST. Получаю эти данные и просто их вывожу посредством PHP на экрна в div. Результат выводится в кодировке UTF-8. А в браузере стоит windows-1251. Если выбрать, чтобы браузер автоматом определял кодировку, то всё нормально. Но меня такое положение дел не устраивает и хочу сразу перед выводом на экран как-то перекодировать ответ на запрос в windows-1251. Среди PHP функций не нашёл мне нужную. Надеюсь, что данную проблему можно решить как-то по-другому. Может, я запрос неправильно отправляю... Все мои заготовки выкладываю ниже.

Файл index.html:

CODE (text):
скопировать код в буфер обмена
  1. <script language="javascript">
  2.   function processReqChange_8() {
  3.     if(req8.readyState==4) {
  4.       if(req8.status==200) {
  5.         document.getElementById("body").innerHTML = req8.responseText;
  6.       }
  7.     }
  8.   }
  9.   function multi_call7(arg1,arg2) {
  10.     if(window.XMLHttpRequest) {
  11.       req8 = new XMLHttpRequest();
  12.       req8.onreadystatechange = processReqChange_8;
  13.       req8.open("POST",arg1, true);
  14.       req8.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  15.       req8.send(arg2);
  16.     } else if (window.ActiveXObject) {
  17.       req8 = new ActiveXObject("Microsoft.XMLHTTP");
  18.       if (req8) {
  19.         req8.onreadystatechange = processReqChange_8;
  20.         req8.open("POST",arg1, true);
  21.         req8.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  22.         req8.send(arg2);
  23.       }
  24.     }
  25.   }
  26. </script>
  27.  
  28. <html>
  29.   <body>
  30.     <input name="text" type="text" value="Русский текст" size="20">
  31.     <br/>
  32.     <input type="button" value="Передать данные!" onclick="multi_call7('test.php','text='+encodeURIComponent(text.value));">
  33.     <br/>
  34.     <div id="body">
  35.     </div>
  36.   </body>
  37. </html>


Файл test.php:

CODE (text):
скопировать код в буфер обмена
  1. <?php
  2.  
  3.    echo $_POST['text'];
  4.    
  5. ?>


Заранее спасибо за ответ!

Страниц (10): В начало « ... 2 3 4 5 6 7 8 9 [10]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB