Javascript.RU

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

Сообщение от Poznakomlus Посмотреть сообщение
mrmammoth,
передавай элемент на сервер и там добавляй
не зачем впустую гонять ненужные данные
полностью код не приводил. $str передаётся через текстовое поле hidden.
дело в том, что пользователь может сделать несколько разных действий как то добавить, удалить, изменить в том числе и массив верхнего уровня. все его действия будут в $str и затем одним Submit передастся на сервер. можно и по одному элементу, но тогда пользователю придётся нажимать submit после каждого своего действия. действий может быть много. это время.

Последний раз редактировалось mrmammoth, 23.03.2014 в 13:02.
Ответить с цитированием
  #12 (permalink)  
Старый 23.03.2014, 01:45
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

/* даёт ошибку элемент не поддерживает push*/
arr[i]['param3'].push({
arr[i]['param3'] = [];
arr[i]['param3'].push({
...
Ответить с цитированием
  #13 (permalink)  
Старый 23.03.2014, 01:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

mrmammoth,
function doAdd(str) {
           var arr = JSON.parse(str);
            !arr['param3'] && (arr['param3'] = [])

                    arr['param3'].push({
                        subparam1: 'vol1',
                        subparam2: 'vol2'
                    });

            return JSON.stringify(arr);
}
alert(doAdd('{"param1":"value1","param2":"value2"}'))
Ответить с цитированием
  #14 (permalink)  
Старый 23.03.2014, 13:00
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

Poznakomlus,
рони,
работает и так и так, но если в param3 уже были какие-то элементы - они замещаются новыми, а хотелось бы добавить.
Ответить с цитированием
  #15 (permalink)  
Старый 23.03.2014, 13:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

mrmammoth,
так укажите куда добавить то и добавте -- нарисуйте без php что было и чего хотите достичь чтоб мы вас поняли
Ответить с цитированием
  #16 (permalink)  
Старый 23.03.2014, 13:45
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

имеем на входе:
[{"param1":"volume1","param2":"volume2","param3" :[{"subparam1":"vol1","subparam2":"vol2"}]}]
надо после 1-й отработки скрипта:
[{"param1":"volume1","param2":"volume2","param3" :[{"subparam1":"vol1","subparam2":"vol2"},{"subparam 1":"vol1","subparam2":"vol2"}]}]
после 2-й
[{"param1":"volume1","param2":"volume2","param3" :[{"subparam1":"vol1","subparam2":"vol2"},{"subparam 1":"vol1","subparam2":"vol2"},{"subparam1":"vol1", "subparam2":"vol2"}]}]

и т.д.
Ответить с цитированием
  #17 (permalink)  
Старый 23.03.2014, 14:03
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

arr[i]['param3'] = arr[i]['param3'] || [];

или опять не понял
Ответить с цитированием
  #18 (permalink)  
Старый 23.03.2014, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

mrmammoth,
<script>
    var arr = [{"param1":"volume1","param2":"volume2"}]

   function doAdd(params) {

            !arr[0]['param3'] && (arr[0]['param3'] = [])

                    arr[0]['param3'].push(params);

            return JSON.stringify(arr);
}
document.write(doAdd({"param1":"value1","param2":"value2"})+"<br>")
document.write(doAdd({"param1":"value1","param2":"value2"})+"<br>")
document.write(doAdd({"param1":"value1","param2":"value2"})+"<br>")
</script>
Ответить с цитированием
  #19 (permalink)  
Старый 23.03.2014, 16:21
Интересующийся
Отправить личное сообщение для mrmammoth Посмотреть профиль Найти все сообщения от mrmammoth
 
Регистрация: 19.03.2014
Сообщений: 22

рони,
Poznakomlus,
Спасибо за помощь, всё функционирует!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как добавить свойство объекта в объект в объекте ? %) mitiya Общие вопросы Javascript 1 07.10.2012 14:46
Как добавить элемент в XML через DOM используя PHP? bayah Серверные языки и технологии 6 11.08.2010 13:33
как в динамически добавляемый элемент добавить еще несколько? sadonn Элементы интерфейса 1 29.05.2010 12:07
Как добавить элемент в обьект json Юрий Игоревич Общие вопросы Javascript 2 26.10.2009 15:01
Добавить активный элемент Wirty jQuery 5 09.08.2009 16:06