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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ajax не коректно работает в Опере

 PHP.SU

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


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

> Описание: В чем проблемма?
taxi008
Отправлено: 12 Декабря, 2011 - 19:48:58
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Помогите пожалуйста. Есть форма с проверкой на наличие слова в базе. Обработчик формы на Ajax. Вроде все работает нормально. А в Опере при любом раскладе отрицательный результат.
CODE (javascript):
скопировать код в буфер обмена
  1. $.ajax({
  2.                         url: "testing.php",
  3.                         type: "GET",
  4.                         data: "name=" + name,
  5.                         cache: false,
  6.                         success: function(response){
  7.                                 if(response == "no"){
 
 Top
ams
Отправлено: 12 Декабря, 2011 - 20:12:44
Post Id



Посетитель


Покинул форум
Сообщений всего: 351
Дата рег-ции: Нояб. 2010  


Помог: 13 раз(а)




Посмотри что в ответ приходит именно в опере. Похожее было, только наоборот Улыбка
 
 Top
taxi008
Отправлено: 12 Декабря, 2011 - 20:33:23
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




В опере приходит ответ "Неверное слово". тоесть-
PHP:
скопировать код в буфер обмена
  1. if(@mysql_num_rows($query) <= 0){echo "no";}
  2.  if(mysql_num_rows($query) > 0){echo "yes";}

CODE (javascript):
скопировать код в буфер обмена
  1. success: function(response){
  2.                                 if(response == "no"){
  3.                                         $("#name").next().hide().text("Неверное слово").css("color","red").fadeIn(400);
  4.                                         $("#name").removeClass().addClass("inputRed");
  5.                                         nameStat = 0;
  6.                                 buttonOnAndOff();      
 
 Top
taxi008
Отправлено: 12 Декабря, 2011 - 23:32:34
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Может проблемма в кодировке?
 
 Top
Опоссум
Отправлено: 13 Декабря, 2011 - 07:33:00
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Окт. 2011  


Помог: 2 раз(а)




Попробуй вывести Ajax`ом слово которое ты отправил на сервер, тогда поймешь дело в кодировке или нет.
 
 Top
taxi008
Отправлено: 13 Декабря, 2011 - 12:26:42
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




А каким образом вывести слово?
Самое главное на сайте есть форма регистрации, точно по такому же сценарию. Разница только в html форме. Работает во всех браузерах.
 
 Top
tuareg
Отправлено: 13 Декабря, 2011 - 13:03:41
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Попробуйте принудительно использовать encodeURIComponent
http://javascript[dot]ru/encodeURIComponent
 
 Top
taxi008
Отправлено: 13 Декабря, 2011 - 14:33:25
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Слово в базе хранилось на русском языке. Обработчик Ajax его не находил и выдавал " Неверное слово". Изменил само слово, написал его на английском. Обработчик на опере заработал коректно. Значит все дело в кодировке? Как можно исправить проблемму?

(Отредактировано автором: 13 Декабря, 2011 - 14:33:57)

 
 Top
tuareg
Отправлено: 13 Декабря, 2011 - 14:40:54
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Перекодировать в UTF-8 БД и все файлы. Или если это не возможно или что-то еще...

(Отредактировано автором: 13 Декабря, 2011 - 14:41:27)

 
 Top
taxi008
Отправлено: 13 Декабря, 2011 - 17:52:30
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




У Меня в bd кодировка windows-1251. Пытаюсь изменить кодировку запроса, вообще не работает.
 
 Top
tuareg
Отправлено: 13 Декабря, 2011 - 18:05:14
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Вы получили переменную $_GET['name'].
PHP:
скопировать код в буфер обмена
  1.  
  2. $name=iconv("UTF-8","Ваша кодировка",$_GET['name']);
  3. /*Потом запрос*/
  4.  
 
 Top
taxi008
Отправлено: 13 Декабря, 2011 - 18:23:08
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Сделал все как Вы сказали.
PHP:
скопировать код в буфер обмена
  1. $name=iconv("UTF-8","Ваша кодировка",$_GET['name']);

На опере скрипт заработал коректно. А вот другие браузеры наоборот перестали работать.
Замкнутый круг. Что делать?
(Добавление)
Неужели нет решения проблеммы?
 
 Top
tuareg
Отправлено: 13 Декабря, 2011 - 19:38:25
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Есть работают же сайты нормально.
Во-первых сделайте сами файлы в кодировке UTF-8.
Во-вторых После получения ответа от БД. делайте обратную перекодировку
PHP:
скопировать код в буфер обмена
  1.  
  2. $name=iconv("Ваша кодировка","UTF-8",$_GET['name']);
  3.  

P.S На будущее лучше переходить на UTF-8
 
 Top
taxi008
Отправлено: 13 Декабря, 2011 - 21:49:47
Post Id



Гость


Покинул форум
Сообщений всего: 109
Дата рег-ции: Сент. 2011  
Откуда: Москва


Помог: 0 раз(а)




Все так. Но я не могу понять почему все браузеры кроме оперы с этим скриптом осуществляют запрос в bd нормально.
Делаю кодировку..
PHP:
скопировать код в буфер обмена
  1. $name=iconv("UTF-8","Ваша кодировка",$_GET['name']);
.
В результате опера работает коректно, а вот другие перестают работать коректно.
Получается, если я после получения ответа от БД. сделаю обратную перекодировку. Браузеры снова заработают коректно, а опера наоборот.
Какой то замкнутый круг!
Если я таблицы в bd перекодирую в UTF-8, будут ли нармально восприниматся русские буквы? И как будут работать все браузеры с этой кодировкой?
 
 Top
tuareg
Отправлено: 13 Декабря, 2011 - 23:08:12
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


Помог: 69 раз(а)




Вы не только БД перекодируйте, но и проследите чтобв файлы обработчики тоже были в UTF-8
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB