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 :: Unseriliize data

 PHP.SU

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


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

> Без описания
Telnet
Отправлено: 08 Июля, 2011 - 21:04:29
Post Id


Частый гость


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


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




Это храниться в БД

a:2:{i:0;a:21:{s:10:"typeOfarea";s:4:"rect";s:4:"i nfo";s:13:"273,28,307,17";s:9:"showpanel";s:2:"on" ;s:6:"number";s:2:"on";s:10:"changearea";s:2:"on"; s:5:"coord";s:2:"on";s:8:"fillpoly";s:14:"rgb(0, 255, 0)";s:8:"fillrect";s:16:"rgb(205, 51, 51)";s:9:"fillround";s:16:"rgb(153, 153, 0)";s:11:"opacityfill";s:3:"0.4";s:10:"sizestroke" ;s:1:"2";s:10:"strokepoly";s:15:"rgb(51, 0, 102)";s:10:"strokerect";s:14:"rgb(0, 51, 51)";s:11:"strokeround";s:15:"rgb(102, 51, 0)";s:13:"opacitystroke";s:3:"0.8";s:9:"sizepoint" ;s:1:"2";s:10:"colorpoint";s:14:"rgb(255, 0, 0)";s:10:"numbersize";s:2:"16";s:9:"colorfont";s:1 2:"rgb(0, 0, 0)";s:9:"coloredit";s:16:"rgb(204, 255, 0)";s:11:"areadefault";s:6:"dialog";}i:1;a:22:{s:1 0:"typeOfarea";s:6:"circle";s:4:"info";s:13:"426,1 1,458,14";s:6:"radius";s:2:"32";s:9:"showpanel";s: 2:"on";s:6:"number";s:2:"on";s:10:"changearea";s:2 :"on";s:5:"coord";s:2:"on";s:8:"fillpoly";s:14:"rg b(0, 255, 0)";s:8:"fillrect";s:16:"rgb(205, 51, 51)";s:9:"fillround";s:16:"rgb(153, 153, 0)";s:11:"opacityfill";s:3:"0.4";s:10:"sizestroke" ;s:1:"2";s:10:"strokepoly";s:15:"rgb(51, 0, 102)";s:10:"strokerect";s:14:"rgb(0, 51, 51)";s:11:"strokeround";s:15:"rgb(102, 51, 0)";s:13:"opacitystroke";s:3:"0.8";s:9:"sizepoint" ;s:1:"2";s:10:"colorpoint";s:14:"rgb(255, 0, 0)";s:10:"numbersize";s:2:"16";s:9:"colorfont";s:1 2:"rgb(0, 0, 0)";s:9:"coloredit";s:16:"rgb(204, 255, 0)";s:11:"areadefault";s:6:"dialog";}}

Тоже в нормальном виде если использую функцию unserialize на стороне сервера

[array] allzona
[array] 0
[string] areadefault = "dialog"
[string] changearea = "on"
[string] coloredit = "rgb(204, 255, 0)"
[string] colorfont = "rgb(0, 0, 0)"
[string] colorpoint = "rgb(255, 0, 0)"
[string] coord = "on"
[string] fillpoly = "rgb(0, 255, 0)"
[string] fillrect = "rgb(205, 51, 51)"
[string] fillround = "rgb(153, 153, 0)"
[string] info = "273,28,307,17"
[string] number = "on"
[string] numbersize = "16"
[string] opacityfill = "0.4"
[string] opacitystroke = "0.8"
[string] showpanel = "on"
[string] sizepoint = "2"
[string] sizestroke = "2"
[string] strokepoly = "rgb(51, 0, 102)"
[string] strokerect = "rgb(0, 51, 51)"
[string] strokeround = "rgb(102, 51, 0)"
[string] typeOfarea = "rect"
[array] 1
[string] areadefault = "dialog"
[string] changearea = "on"
[string] coloredit = "rgb(204, 255, 0)"
[string] colorfont = "rgb(0, 0, 0)"
[string] colorpoint = "rgb(255, 0, 0)"
[string] coord = "on"
[string] fillpoly = "rgb(0, 255, 0)"
[string] fillrect = "rgb(205, 51, 51)"
[string] fillround = "rgb(153, 153, 0)"
[string] info = "426,11,458,14"
[string] number = "on"
[string] numbersize = "16"
[string] opacityfill = "0.4"
[string] opacitystroke = "0.8"
[string] radius = "32"
[string] showpanel = "on"
[string] sizepoint = "2"
[string] sizestroke = "2"
[string] strokepoly = "rgb(51, 0, 102)"
[string] strokerect = "rgb(0, 51, 51)"
[string] strokeround = "rgb(102, 51, 0)"
[string] typeOfarea = "circle"

если пишу так
restore = new Array();//массив для хранения информации о точках
var restore=<? echo $allzona ?>;
alert(restore);
то выводит
function Array() {
[native code]
}
если пытаюсь обратиться к restore[0] то выдает ошибку.
Можно конечно не использовать unserialize на стороне сервера, а передавать скрипту ту огромную строку данных, но как парсить много мерные массивы в строковом виду ума не приложу.
Нужна Ваша помощь.
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Июля, 2011 - 22:02:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Не зная особенностей ситуации предположу, как то так:
SELECT FROM DB => unserialize => json_encode => JS eval на клиенте
 
 Top
Telnet
Отправлено: 08 Июля, 2011 - 22:43:45
Post Id


Частый гость


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


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




Да ситуация самая обычная, просто мне раньше с таким не доводилось сталкивать.
На сервере в базе данных храниться массив объектов JS.
Нужно его как передать на сторону клиента, т.е в браузер, так что бы Javascript, смог обратно понять что это массив и работать с ним как с массивом.

При передачи одного массива т.е не массива массивов ни каких проблем не возникает
(Добавление)
DeepVarvar Спасибо зделал вот так и
$allzona = json_encode(unserialize($result['area_setting']));
заработало, на стороне клеинта
restore=<? echo $allzona ?>;
а дальше к restore как к массиву
 
 Top
DeepVarvar Супермодератор
Отправлено: 09 Июля, 2011 - 00:53:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




..... <= PHP json_decode <= JS (ajax?)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB