jQuery + PHP нужна помощь!

12
D3
На сайте с 12.11.2011
Offline
51
1102

Есть следующая jQuery функция:

$('#stock').click(function(){$.get(document.location.href, {stock: '1'}, function refresh_page () {$('#result_here').get ()load(document.location.href + ' #result_here');} );});

Суть функции в том, что она передает методом GET параметр stock="1" и html-результат загружает в контейнер "#result_here".

Функция работает отлично, но есть одно 'но'. Проблемы с кодировкой. Изучил очень подробно интернет и выяснил, что мне подойдет следующий вариант решения проблемы. Нужно обработать полученный результат (а это большой HTML файл), который будет выводиться в контейнер "#result_here", PHP функцией вида: $str = iconv('UTF-8', 'windows-1251', $str);

Весь вопрос в том, как это сделать? Очень нужна Ваша помощь.

Красивое женское нижнее белье. http://designer-lingerie.ru/ (http://designer-lingerie.ru/)
S5
На сайте с 04.01.2010
Offline
77
#1

$('#stock').click(function(){

$('#result_here').load(document.location.href + '?stock=1');

});

в php файле который будет генерировать ответ прописуешь заголовок с кодировкой

D3
На сайте с 12.11.2011
Offline
51
#2
sg552:
$('#stock').click(function(){
$('#result_here').load(document.location.href + '?stock=1');
});

в php файле который будет генерировать ответ прописуешь заголовок с кодировкой

Заголовок с кодировкой не помогает. Jquery работает только с кодировкой UTF-8 (читай здесь: http://habrahabr.ru/post/17640/), а у меня win-1251 (поменять не могу по определенным причинам).

Поэтому выход только в том, чтобы результат этой функции (html файл) обработать в PHP с помощью. $str = iconv('UTF-8', 'windows-1251', $str);

Но как это сделать?

siv1987
На сайте с 02.04.2009
Offline
427
#3

dr303, что значит как сделать? Вы же сами себе написали как $str = iconv('UTF-8', 'windows-1251', $str); echo $str;

а вообще я смотрю нормально вроде ajax работает в win с кириллицей, не бьется

sg552:
в php файле который будет генерировать ответ прописуешь заголовок с кодировкой
D3
На сайте с 12.11.2011
Offline
51
#4
siv1987:
dr303, что значит как сделать? Вы же сами себе написали как $str = iconv('UTF-8', 'windows-1251', $str); echo $str;

а вообще я смотрю нормально вроде ajax работает в win с кириллицей, не бьется

Извините, может я туплю, но не понимаю, как результат этой функции (большой html файл) передать в новый файл-обработчик php, где будет обработка, и потом получить обратно результат в jquery.

S5
На сайте с 04.01.2010
Offline
77
#5
dr303:
Заголовок с кодировкой не помогает. Jquery работает только с кодировкой UTF-8 (читай здесь: http://habrahabr.ru/post/17640/), а у меня win-1251 (поменять не могу по определенным причинам).

Поэтому выход только в том, чтобы результат этой функции (html файл) обработать в PHP с помощью. $str = iconv('UTF-8', 'windows-1251', $str);

Но как это сделать?

вам нужно указать кодировку отдаваемого файла с сервера, чтобы он корректно отобразился. будет это утю или вин1251 неважно. в UTF-8 передаются данные для JSON-а

siv1987
На сайте с 02.04.2009
Offline
427
#6

dr303, ajax может нормально работать и с windows-1251

Укажите в файле кодировку header('Content-type: text/html; charset=windows-1251');

D3
На сайте с 12.11.2011
Offline
51
#7
siv1987:
dr303, ajax может нормально работать и с windows-1251
Укажите в файле кодировку header('Content-type: text/html; charset=windows-1251');

Именно такая кодировка указана в файле. Самое интересное, что в Chrome все работает, а в Мозилле и Опере выдаются кракозябры.

siv1987
На сайте с 02.04.2009
Offline
427
#8

Покажите пример крокозябров

Покажите заголовки при аджакс запросе (кодировку) (Опера -> Дополнительно -> Opera dragonfly (CTRL+SHIFT+I) -> Сеть)

D3
На сайте с 12.11.2011
Offline
51
#9
siv1987:
Покажите пример крокозябров
Покажите заголовки при аджакс запросе (кодировку) (Опера -> Дополнительно -> Opera dragonfly (CTRL+SHIFT+I) -> Сеть)

Вот, выложил пример-аналог. Обратите внимание, что в Хроме работает, а в Мозилле и Опере - нет.

http://designer-lingerie.ru/pub/

IL
На сайте с 20.04.2007
Offline
435
#10

В заголовках ответ

Content-Type text/html

Выше уже написали несколько раз - укажите кодировку

Content-Type text/html;charset=windows-1251

Можно функцией php

header ('Content-Type: text/html;charset=windows-1251');

Или в .htaccess директивами AddCharset, AddType.. в общем, куча способов

http://www.w3.org/International/questions/qa-htaccess-charset.en

... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий