Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Аякс
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Аякс

Страниц (1): [1]
 

1. D1mOn - 03 Апреля, 2008 - 15:08:08 - перейти к сообщению
Здравствуйте.

Научился юзать AJAX, но возникла проблема, при получении данных (responseText). Данные отображаются вот так: ???????. Я думаю проблема в кодировке в серверном скрипте. Подскажите функцию(и) для исправления этой проблемы.

Заранее пасибо.
(Добавление)
Извините, тема разрешилась. В серверном скрипте пишем
PHP:
скопировать код в буфер обмена
  1. iconv('windows-1251', 'UTF-8', "то что криво выводилось");


и всё.

А еще вопросик: как узнать, координаты курсора на Яваскрипте?
2. valenok - 03 Апреля, 2008 - 17:05:57 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. function followmouse(e){
  2.  
  3.         var x;
  4.         var y;
  5.        
  6.         if (typeof e != "undefined"){
  7.                 x=e.pageX;
  8.                 y=e.pageY;
  9.         }
  10.         else if (typeof window.event !="undefined"){
  11.                 x=truebody().scrollLeft+event.clientX;
  12.                 y=truebody().scrollTop+event.clientY;
  13.         }
  14. }
  15.  
  16. document.onmousemove =  followmouse;
3. D1mOn - 05 Апреля, 2008 - 07:44:50 - перейти к сообщению
Хм, соорудил голосование на аяксе, вида 1 2 3 4 5, нажимаю допустим 5 первый раз, голос засчитывается, а вот второй раз, уже не работает (пока браузер не переоткрою) ( Не пойму, кешируется, что ли?!
4. valenok - 05 Апреля, 2008 - 11:29:41 - перейти к сообщению
Значит плохо соорудили.

И скорее всего это значит что вы пользуетесь ИЕ
и также скорее всего у вас стоит нечто вроде

request.onreadystatechange = somefunc;
request.open("GET", url, true);

А их нужно поменять местами.
5. D1mOn - 05 Апреля, 2008 - 12:39:21 - перейти к сообщению
Да я на ОСЛЕ сижу, но!
Код у меня такой, а соответственно правильный!

CODE (text):
скопировать код в буфер обмена
  1. request.open("GET",url,true);request.onreadystatechange=asv;request.send(null);
6. valenok - 05 Апреля, 2008 - 14:16:24 - перейти к сообщению
Тогда откройте нормальным браузером консоль ошибок и смотрите что не так.
7. SION-ZENIT - 06 Апреля, 2008 - 18:48:11 - перейти к сообщению
Я где-то читал что если вы пользуетесь GET-методом, то надо добавить в конце параметр который изменяется, чтоб урл не кэшировался.
CODE (text):
скопировать код в буфер обмена
  1.  
  2. var url="index.php?param=1&param1=2&param3=2&time=" + new Date().getMilliseconds();
  3.  
8. valenok - 06 Апреля, 2008 - 19:09:28 - перейти к сообщению
Ну к самому вопросу это отношения не имеет, а во вторых почему бы и не кэшировать?
9. Пыхарь - 07 Апреля, 2008 - 06:37:35 - перейти к сообщению
GET запросы всегда кэшируются браузером, и если ваша AJAX-страница, посылает однотипные запросы, но сервер возвращает разные ответы, то нужно запретить кэширование, делается это с помощью php. В самом начале файла, который мы запрашиваем с помощью AJAX, поместите следующий php-код:

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  4. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  5. header("Cache-Control: no-store, no-cache, must-revalidate");
  6. header("Cache-Control: post-check=0, pre-check=0", false);
  7. header("Pragma: no-cache");
  8. ?>
  9.  

 

Powered by ExBB FM 1.0 RC1