Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.09.2010, 16:09
Интересующийся
Отправить личное сообщение для Enxiro Посмотреть профиль Найти все сообщения от Enxiro
 
Регистрация: 25.08.2010
Сообщений: 22

JSON не передаёт строку из БД
Здравствуйте.
Задача заполнить динамически select
Есть табличка "regions". В ней поля 'id_region' и 'name'.
Из файла index.php отправляется запрос на получение значений из таблицы:
jQuery.getJSON('/modules/ajax.php', {region_id: _this.value}, function(data){
            if(getCity(data))    jQuery('select#city').removeAttr('disabled');
       });

Собственно в фукции getCity(data) по идее будет идти разбор строки JSON и заполнение селекта.

Файл ajax.php выглядит так:
$query_region = "SELECT * FROM regions";
$records = mysql_query($query_region) or die(mysql_error());
$arr = mysql_fetch_array($records);
echo json_encode($arr);  // вернуть массив регионов

Смотрю результат который приходит в Firebug. ID-шник региона приходит нормально, а вот вместо названия приходит NULL. В чём может быть причина?
т.е. любые числовые значения приходя нормально, любые текстовые не приходят..

P.S. если отправляю при помощи JSON например массив вида
$arr = array(1 => 'Hello world');

то в index эта строка нормально приходит.
т.е. предполагаю что нужно преобразовать формат строки полученный из БД что ли как то.

Последний раз редактировалось Enxiro, 25.09.2010 в 16:12.
Ответить с цитированием
  #2 (permalink)  
Старый 25.09.2010, 21:12
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

вы как минимум ошиблись разделом форума, так как у вас вопрос о серверной части, а не о JS
var_dump-ом вывести поулченный массив.
скорее всего из базы приходят именно такие данные
в любом сулчае, за вас по кофейной гуще отлаждивать никто не будет
Ответить с цитированием
  #3 (permalink)  
Старый 25.09.2010, 22:20
Интересующийся
Отправить личное сообщение для Enxiro Посмотреть профиль Найти все сообщения от Enxiro
 
Регистрация: 25.08.2010
Сообщений: 22

спасибо за наводку. вопрос решился.
собственно вернул строку таким образом
echo json_encode(var_dump($arr));

увидел в отладчике что пришли данные вместе с названиями (то бишь убедился что запрос правильно работает и проблема в формате передаваемых данных).
Изменил кодировку всех файлов на UTF-8 - заработало всё.

Собственно я предполагал что проблемы в кодировке могу быть, но думал что будут хотя бы кракозябры возвращаться. а тут null возвращалось. это смутило.
Ответить с цитированием
  #4 (permalink)  
Старый 25.09.2010, 23:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

странный глюк
и мне кажется что проблема все-таки не в кодировке файла.
но в чем именно, по полученным данным, трудно сказать
Ответить с цитированием
  #5 (permalink)  
Старый 27.09.2010, 22:15
Интересующийся
Отправить личное сообщение для Enxiro Посмотреть профиль Найти все сообщения от Enxiro
 
Регистрация: 25.08.2010
Сообщений: 22

подниму тему. вдруг пригодится кому то.
в общем проблема крылась в 2-х вещах.
Во первый это действительно кодировка файла. Если кодировка не UTF-8, то вместо русской строки передаётся null. Причём не только то место где русские буквы встретились, а вся строка идёт как null.
Второе - это кодировка подключения к БД.
Сразу после подключения к базе данных выполняю запрос
mysql_set_charset('utf8');

и только тогда, о чудо, данные полученные из базы передаются как надо, а не только числа.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery. Обработка ошибок и JSON. mma_mma jQuery 3 19.07.2010 12:10
не работает JSON в JQuery 1.4.1 mcpro jQuery 7 22.03.2010 17:56
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
treeview и JSON PANKOFF jQuery 2 21.05.2009 14:46
Как создать строку JSON с переменными? Артем AJAX и COMET 4 01.11.2008 12:12