Javascript.RU

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

serialize-unserialize js php прошу помощи
Здравствуйте
Столкнулся с проблемой: есть такой скрипт.

<script type='text/javascript'>
        function doAddContainer() {
            obj = {
                    name: "tile002",
                    thumbnail: "images/widget_scroll.png",
                    content: "tile001",
                    url: "tiles/blank.php",
                    size: "4x2",
                    theme: "orange",
                    link: ""
                };
            tile = {
                size:   "4",
                theme:  "container2",
                name:   "container2",
                tiles: obj
                
            };

            var cc = document.getElementById('plugin_textarea_string');
            tiles = cc.value;
            tile_containers = unserialize(tiles);
            tile_containers[tile_containers.length] = tile;

            document.getElementById('plugin_textarea_string').value = serialize(tile_containers);


        }
    </script>


у него на входе следущая строка из php:
a:1:{i:0;a:4:{s:4:"size";s:1:"4";s:5:"theme";s:10: "container1";s:4:"name";s:10:"container1";s:5:"til es";a:1:{i:0;a:7:{s:4:"name";s:7:"tile001";s:9:"th umbnail";s:24:"images/widget_scroll.png";s:7:"content";s:7:"tile001";s:3 :"url";s:15:"tiles/blank.php";s:4:"size";s:3:"4x2";s:5:"theme";s:6:"o range";s:4:"link";s:0:"";}}}}

скрипт должен добавить в составной массив ещё один объект и отправить его в php, соорудив вот такую "правильную" строку:

a:2:{i:0;a:4:{s:4:"size";s:1:"4";s:5:"theme";s:10: "container1";s:4:"name";s:10:"container1";s:5:"til es";a:1:{i:0;a:7:{s:4:"name";s:7:"tile001";s:9:"th umbnail";s:24:"images/widget_scroll.png";s:7:"content";s:7:"tile001";s:3 :"url";s:15:"tiles/blank.php";s:4:"size";s:3:"4x2";s:5:"theme";s:6:"o range";s:4:"link";s:0:"";}}}i:1;a:4:{s:4:"size";s: 1:"4";s:5:"theme";s:10:"container2";s:4:"name";s:1 0:"container2";s:5:"tiles";a:1:{i:0;a:7:{s:4:"name ";s:7:"tile002";s:9:"thumbnail";s:24:"images/widget_scroll.png";s:7:"content";s:7:"tile001";s:3 :"url";s:15:"tiles/blank.php";s:4:"size";s:3:"4x2";s:5:"theme";s:6:"o range";s:4:"link";s:0:"";}}}}

но получается вот такая "неправильная":

a:2:{i:0;a:4:{s:4:"size";s:1:"4";s:5:"theme";s:10: "container1";s:4:"name";s:10:"container1";s:5:"til es";a:1:{i:0;a:7:{s:4:"name";s:7:"tile001";s:9:"th umbnail";s:24:"images/widget_scroll.png";s:7:"content";s:7:"tile001";s:3 :"url";s:15:"tiles/blank.php";s:4:"size";s:3:"4x2";s:5:"theme";s:6:"o range";s:4:"link";s:0:"";}}}i:1;a:4:{s:4:"size";s: 1:"4";s:5:"theme";s:10:"container2";s:4:"name";s:1 0:"container2";s:5:"tiles";a:7:{s:4:"name";s:7:"ti le002";s:9:"thumbnail";s:24:"images/widget_scroll.png";s:7:"content";s:7:"tile001";s:3 :"url";s:15:"tiles/blank.php";s:4:"size";s:3:"4x2";s:5:"theme";s:6:"o range";s:4:"link";s:0:"";}}}

функции serialize и unserialize работают корректно.
убирал эту строку tile_containers[tile_containers.length] = tile;
и давал на вход скрипта от php "правильную" строку. После парсинга в обе стороны она остаётся такой же.

Собственно вопрос: как всё-таки получить при работе скрипта "правильную"
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2014, 10:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

В JS нет функций serialize/unserialize! Ты спутал с PHP. В JS запросто сериализуются простые объекты, массивы и примитивы через JSON.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2014, 11:07
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

я ничего не спутал. это пользовательские функции. если надо - могу кинуть код. но они работают корректно
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2014, 11:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от mrmammoth
могу кинуть код
Лучше расскажи что они делают и зачем они нужны тебе? Или просто захотелось изобрести велосипед?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 19.03.2014, 11:49
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

парсят в соответствующих форматах аналогичных функций php. Если перебираться на json - это неделя гемора править во всех подобных местах + менять везде где уже есть формат php на формат json в базе

Последний раз редактировалось mrmammoth, 19.03.2014 в 11:54.
Ответить с цитированием
  #6 (permalink)  
Старый 19.03.2014, 16:16
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

Проблема решена:
<script type='text/javascript'>
        function doAddContainer() {
            obj = {
                name: "tile002",
                thumbnail: "images/widget_scroll.png",
                content: "tile001",
                url: "tiles/blank.php",
                size: "4x2",
                theme: "orange",
                link: ""
            };
            objobj = { obj: obj };
            tile = {
                size: "4",
                theme: "container2",
                name: "container2",
                tiles: objobj

            };

            var cc = document.getElementById('plugin_textarea_string');
            tiles = cc.value;
            tile_containers = unserialize(tiles);
            tile_containers[tile_containers.length] = tile;

            document.getElementById('plugin_textarea_string').value = serialize(tile_containers);


        }
    </script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгрузка блоков из php с помощью js oster_j Общие вопросы Javascript 0 18.03.2013 13:39
Передать значение переменной из php в js wayzer jQuery 6 09.09.2012 23:26
Как отразить картинку при помощи JS. 2dkott Элементы интерфейса 4 03.09.2009 22:51
Что выбрать XML или JSON для передачи Ajax - ом из PHP в JS Gozar Общие вопросы Javascript 20 16.08.2009 23:36
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00