Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / проблема с JSON / 20 сообщений из 20, страница 1 из 1
07.06.2013, 19:23
    #38290950
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Здорова братва.

Короче у меня следующая проблема
есть скрипт на сервере на php

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 include_once($_SERVER['DOCUMENT_ROOT']."/core/fucntion.php");
 include_once($_SERVER['DOCUMENT_ROOT']."/core/config.php");
 include_once($_SERVER['DOCUMENT_ROOT']."/core/database.php");

 $db = core_database::Instance();
 
 $id_guest = @intval($_GET['id_guest']);
 
 $result = $db->m_query("SELECT * FROM tb_guest WHERE ID_Guest = ".$id_guest);
 
 if ($result) {
    $list = array();
    $list = createRsArray($result);
    
    echo json_encode($list); 
 }



ему отправляется запрос следующим кодом который написан javascript

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        $.ajax({
            type: "GET",
            async: false,
            url: url_,
            dataType: "text",
            data: "id_guest="+idGuest,
            error: function(){  alert("Ошибка"); },
            success: function (data) {
                         alert(data);                       
                     }
        }); 




теперь когда вывожу alert(data)

у меня выходит все нормально, но где должен быть текст на русском языке выходит null

с чем это может быть связано?

Модератор: Тема перенесена из форума "HTML, JavaScript, VBScript, CSS".
...
Рейтинг: 0 / 0
07.06.2013, 19:34
    #38290966
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Воспользуйтесь любым средством отладки встроенным в браузер например Опера Ctrl+Shift+i - откроет в нижней половине экрана отладчик. Выберите объект XHR и просмотрите запрос, ответ севера, возможно сообщения об ошибках, логи сервера.
...
Рейтинг: 0 / 0
07.06.2013, 19:44
    #38290977
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
А я понял вопрос.
This function only works with UTF-8 encoded data. А у Вас видимо что-то типа windows-1251
...
Рейтинг: 0 / 0
07.06.2013, 20:46
    #38291029
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
У меня появилась типа

*****************************

Request URL: http://elhist.ru/Registers/ajax/get_info_client.php?id_guest=34
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:text/plain, */*; q=0.01
Accept-Charset:windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Cookie:PHPSESSID=hhvri6i8fi9fr5g4ap23udpj83; __session:0.2131266612559557:=http:
Host:elhist.ru
Referer: http://elhist.ru/
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.46 Safari/535.11 MRCHROME
X-Requested-With:XMLHttpRequest
Query String Parametersview URL encoded
id_guest:34
Response Headersview source
Connection:Keep-Alive
Content-Length:229
Content-Type:text/html; charset=windows-1251
Date:Fri, 07 Jun 2013 16:40:26 GMT
Keep-Alive:timeout=5, max=100
Server:Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
X-Powered-By:PHP/5.3.13


*****************************
...
Рейтинг: 0 / 0
07.06.2013, 21:12
    #38291039
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Content-Type:text/html; charset=windows-1251

json_encode

Функция кодирует только UTF-8 кодировку. То есть или пишите свой парсер, или конвертируйте в
windows-1251->UTF-8->JSON->windows-1251
А вообще лучше сразу приложение ваять в UTF-8
...
Рейтинг: 0 / 0
07.06.2013, 22:46
    #38291066
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
А как это сделать?
...
Рейтинг: 0 / 0
07.06.2013, 22:54
    #38291072
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Код: php
1.
2.
3.
4.
5.
6.
// Все строки массива пропустить через функцию перекодировки
$str = iconv("windows-1251", "UTF-8", $str)
...

$str = json_encode($arr, JSON_UNESCAPED_UNICODE);
$str = iconv("UTF-8", "windows-1251", $str);
...
Рейтинг: 0 / 0
07.06.2013, 23:02
    #38291077
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
В начале php файла пишу

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

все равно выдает null вместо русского текста
...
Рейтинг: 0 / 0
07.06.2013, 23:13
    #38291084
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
apapacy,

у меня примерно как будет выглядеть если применять

$list = array();
$list = createRsArray($result);

далее как мне написать
...
Рейтинг: 0 / 0
08.06.2013, 03:58
    #38291155
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Код: php
1.
2.
3.
4.
5.
foreach ($list as $key => $value)
    $list[$key] = conv("windows-1251", "UTF-8", $value);
$str = json_encode($list, JSON_UNESCAPED_UNICODE);
$str = iconv("UTF-8", "windows-1251", $str);
return $str;
...
Рейтинг: 0 / 0
08.06.2013, 10:08
    #38291193
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
apapacy,

неполучается никак
...
Рейтинг: 0 / 0
08.06.2013, 10:20
    #38291198
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Aina2008, в коде я пропустил (случайно) букву i в названии функции. ЧТо б не быть голословным - отладил фрагмент кода на реальном сервере.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
$list = array(f=>"Русский текст");
var_dump($list);
foreach ($list as $key => $value)
    $list[$key] = iconv("windows-1251", "UTF-8", $value);
var_dump($list);
$str = json_encode($list, JSON_UNESCAPED_UNICODE);
$str = iconv("UTF-8", "windows-1251", $str);
echo $str;



Получил вывдод как и ожидалось

array(1) { ["f"]=> string(13) "Русский текст" } array(1) { ["f"]=> string(25) "Р СѓСЃСЃРєРёР№ текст" } {"f":"Русский текст"}


Ни один форум не напишет программу за Вас. Уитесь и еще раз учитесь. (Хотя может быть это Вам и не нужно - студентка?)
...
Рейтинг: 0 / 0
08.06.2013, 10:53
    #38291206
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
apapacy,

Проблема в том что у меня вот на эту константу JSON_UNESCAPED_UNICODE
выдает ошибку, мне кажется из за версий php, а можно ли ее заменить на что то другое.
...
Рейтинг: 0 / 0
08.06.2013, 10:59
    #38291208
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Мне это нужно, сделал как вы, но выдает ошибку
...
Рейтинг: 0 / 0
08.06.2013, 11:56
    #38291219
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
автор JSON_UNESCAPED_UNICODE (integer)
Encode multibyte Unicode characters literally (default is to escape as \uXXXX). Available since PHP 5.4.0.
...
Рейтинг: 0 / 0
08.06.2013, 12:12
    #38291230
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Все получается теперь выдает ошибку

include_once($_SERVER['DOCUMENT_ROOT']."/core/fucntion.php");
include_once($_SERVER['DOCUMENT_ROOT']."/core/config.php");
include_once($_SERVER['DOCUMENT_ROOT']."/core/database.php");

$db = core_database::Instance();

$id_guest = @intval($_GET['id_guest']);

$result = $db->m_query("SELECT * FROM tb_guest WHERE ID_Guest = ".$id_guest);

if ($result) {
$list = array();
$list = createRsArray($result);

echo json_encode($list);
}


скрипт

$.ajax({
type: "GET",
async: false,
url: url_,
dataType: "json",
data: "id_guest="+idGuest,
error: function(){ alert("Ошибка"); },
success: function (data) {
alert(data);
}
});

выходит сообщение ошибка

все страницы перевел в UTF 8...
теперь непойму почему ошибка
...
Рейтинг: 0 / 0
08.06.2013, 12:28
    #38291234
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Aina2008,

ошибку в студию...
...
Рейтинг: 0 / 0
08.06.2013, 18:18
    #38291356
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Програмёр,

когда я задаю в функции $.ajax параметр dataType: "json" появляется ошибка, когда убираю этот параметр то выводится alert следующее

Код: php
1.
[здесь  еще не сколько квадратиков] [{"ID_Guest":"34","FirstName":"Пербудагов","Name":"BMW","SecondName":"BMW","DocType":"1","DocSeria":"34534","DocNum":"6456","DocKem":"ergr","DocDataV":"0000-00-00","Sex":"М","Data_R":"0000-00-00","Adress":"Олега Кошевого","MestRab":"rthrtyhjy"}]



при попытке вывести alert(data[0].ID_Guest), то у меня появляется undefined.

Не пойму в чем ошибка?
...
Рейтинг: 0 / 0
08.06.2013, 19:52
    #38291414
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
"появляется ошибка" всмысле надпись "ошибка" или скрипт падает и не выполняется дальше?
и что значит "тут ещё несколько квадратиков"?

По сути предполагаю, что json неверный приходит от сервера, может ему скобки мешают квадратные в преобразовании (ведь по сути это уже массив получается, а не json). Тут надо просто сесть и написать вместо этого всего вывода
Код: php
1.
 echo '{"id":"bbb"}'


если ошибки не будет, попробовать
Код: php
1.
 echo '[{"id":"bbb"}]'


и так приближать к исходным данным, пока не получите ошибку... займёт 10 минут времени + минут 15-20 на решение проблемы... А Вы тут ждёте уже день целый)) нерационально однако....

P.S. если первый вариант тоже вернётся ошибкой, проверьте код js, значит явно в нём что-то.
...
Рейтинг: 0 / 0
10.06.2013, 22:04
    #38293266
Aina2008
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с JSON
Вопрос решен, спасибо, за ответы...
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / проблема с JSON / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]