[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите плиз с json_encode и русский язык
argentines
Доброе время суток
помогите плиз с кадрировкой,не могу понят по какой причине с php в jquery методом
json_encode не передается русский текст передает null
в php делаю print_r все в норме с базы русский выгребает нормально а вот в клинскую часть приходит массив объекта с пустым значением в чем может быт проблема?

вот код
model

public function makeMenu()
{
$res = $this->get('menu')->execute();
$menu = array();
$count = count($res);
for($i = 0; $i < $count; $i++)
{
if('' == $res[$i]['parent_id'])
{
$menu[] = $res[$i];
}
else
{
$index = $res[$i]['parent_id'];
$menu[$index]['childs'][] = $res[$i];
}
}

return $menu;

}

а это кантролет

public function menu($args='')
{
$menu = Helper::loadModel('Menu');
$rus = $menu->makeMenu();

return json_encode($menu->makeMenu());
}


клиенская часть

$.ajax({

url :'index.php/Main/menu',
type :'GET',
dataType:'json',
success: function(res)
{
if(res)
{
makeLeftMenu(res);
}
else
{
alert('Error');
}

}

}
);





а это то что возврощяет на клиенскую часть
[{"id":"1","parent_id":null,"view_id":"1","ti tle":null},{"id":"2","parent_id":null,"view_id":"2& amp; amp; amp; quot;,"title":"documentation"}



Спустя 1 час, 32 минуты, 5 секунд (7.01.2012 - 22:20) Игорь_Vasinsky написал(а):
может через escape() стоит кириллицу принять?
хотя nulll - это null - данные точно уходят?

Спустя 3 часа, 27 минут, 55 секунд (8.01.2012 - 01:48) argentines написал(а):
Цитата (Игорь_Vasinsky @ 7.01.2012 - 19:20)
может через escape() стоит кириллицу принять?
хотя nulll - это null - данные точно уходят?

ну да все что на англиском все выводит а то что в базе на русском возвращает жсонам null
вобще очень странно обычно если что то не так она выдает неправильную кадрировку
а в этом случае тупа выдает null

Спустя 2 часа, 29 минут, 18 секунд (8.01.2012 - 04:18) Invis1ble написал(а):
argentines
Я не вижу у тебя никакой кириллицы в userData() и клиент у тебя вроде к другому контроллеру обращается. Похоже, что ты что-то путаешь.

ЗЫ. Как вариант - почитай про второй аргумент json_encode() - http://php.net/manual/ru/function.json-encode.php

Спустя 8 часов, 40 минут, 9 секунд (8.01.2012 - 12:58) SlavaFr написал(а):
a json работает только с utf

Спустя 5 минут, 25 секунд (8.01.2012 - 13:03) Семён написал(а):
$this->get('user')->where("login='$login' and   password='$pass'")->limit(1)->execute(); 

это в каком framework-e вы так говнокодите?

Спустя 3 часа, 13 минут, 28 секунд (8.01.2012 - 16:17) Guest написал(а):
Цитата (Семён @ 8.01.2012 - 10:03)
$this->get('user')->where("login='$login' and   password='$pass'")->limit(1)->execute(); 

это в каком framework-e вы так говнокодите?

Во первых это ни чейто Фреймворк а мой личный код а во вторых я попросил помочь мне а не судит гавнокод это или нет

Спустя 12 минут, 6 секунд (8.01.2012 - 16:29) Семён написал(а):
Guest
Прошу прощения за офф-топ, просто крайне возмутила конструкция:
->where("login='$login' and   password='$pass'")


--- По теме покажите как вы через Jquery передаётся русский текст.
Прогоняете ли вы его через encodeURI ?

Спустя 7 минут, 20 секунд (8.01.2012 - 16:36) argentines написал(а):
Цитата (Семён @ 8.01.2012 - 13:29)
Guest
Прошу прощения за офф-топ, просто крайне возмутила конструкция:
->where("login='$login' and   password='$pass'")


--- По теме покажите как вы через Jquery передаётся русский текст.
Прогоняете ли вы его через encodeURI ?

Ни чего страшного брат с кем не бывает user posted image
я понимаю что тебе не понятно потаму что это моя конструкция в классе mysql у меня есть эти функции которые я вызываю вот например get() это select выгрибает с базы
вот она

public function get($table, $fields='*')
{

$this->type_request = 'select';
$table = (is_array($table)) ? implode(',', $table) : $table;
$fields = (is_array($fields)) ? implode(',', $fields) : $fields;
$r = $this->request = "select $fields from $table";
return $this;
}




Спустя 23 минуты, 50 секунд (8.01.2012 - 17:00) Семён написал(а):
Да не меня возмутило совсем не это, что у тебя на 99% нет экранирования входящих данных в самописном QueryBuilder-e smile.gif

Спустя 5 минут, 10 секунд (8.01.2012 - 17:05) m4a1fox написал(а):
Какая кодировка?

Спустя 4 минуты, 45 секунд (8.01.2012 - 17:10) argentines написал(а):
Цитата (Семён @ 8.01.2012 - 14:00)
Да не меня возмутило совсем не это, что у тебя на 99% нет экранирования входящих данных в самописном QueryBuilder-e smile.gif

я в обще по ошибке написал не тот код у меня проблема с русским текстом когда выгребаю меню из базы в базе умнея запись под utf8 general ci делаю принт р из базы в пэху передает все нормально массив на русском а вот после json_encode на клиентской старане выводит только ключ а значение null
обычно если неправильно то выдает краказябли а в этом случае null

Спустя 3 минуты, 3 секунды (8.01.2012 - 17:13) argentines написал(а):
Цитата (m4a1fox @ 8.01.2012 - 14:05)
Какая кодировка?

в базе у меня все под utf8 general ci а вобще везде под UTF8

Спустя 21 час, 41 минута, 16 секунд (9.01.2012 - 14:54) Guest написал(а):
Доброе время суток! ребя большое спасибо кто помогал мне я нашел решение проблемы. Может кто то столкнется с этой проблемой то в моем случае я создал .htaccess в корне и задал AddDefaultCharset UTF-8,а на серверной части после подключение к базе сделал
mysql_query("SET NAMES utf8");

и теперь когда передаю массив через json_encode() на клиенскую сторану приходит нормальный русский текст.

Спустя 1 час, 50 минут, 9 секунд (9.01.2012 - 16:44) SlavaFr написал(а):
Цитата (Guest @ 9.01.2012 - 11:54)
mysql_query("SET NAMES utf8");

если версия mysql выше или равна 5.0.7 , то лучше использовать просто
mysql_set_charset('utf8',$link);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.