23.03.2014, 01:31
|
Интересующийся
|
|
Регистрация: 19.03.2014
Сообщений: 22
|
|
Сообщение от Poznakomlus
|
mrmammoth,
передавай элемент на сервер и там добавляй
не зачем впустую гонять ненужные данные
|
полностью код не приводил. $str передаётся через текстовое поле hidden.
дело в том, что пользователь может сделать несколько разных действий как то добавить, удалить, изменить в том числе и массив верхнего уровня. все его действия будут в $str и затем одним Submit передастся на сервер. можно и по одному элементу, но тогда пользователю придётся нажимать submit после каждого своего действия. действий может быть много. это время.
Последний раз редактировалось mrmammoth, 23.03.2014 в 13:02.
|
|
23.03.2014, 01:45
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
/* даёт ошибку элемент не поддерживает push*/
arr[i]['param3'].push({
arr[i]['param3'] = [];
arr[i]['param3'].push({
...
|
|
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"}'))
|
|
23.03.2014, 13:00
|
Интересующийся
|
|
Регистрация: 19.03.2014
Сообщений: 22
|
|
Poznakomlus,
рони,
работает и так и так, но если в param3 уже были какие-то элементы - они замещаются новыми, а хотелось бы добавить.
|
|
23.03.2014, 13:10
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
mrmammoth,
так укажите куда добавить то и добавте -- нарисуйте без php что было и чего хотите достичь чтоб мы вас поняли
|
|
23.03.2014, 13:45
|
Интересующийся
|
|
Регистрация: 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"}]}]
и т.д.
|
|
23.03.2014, 14:03
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
arr[i]['param3'] = arr[i]['param3'] || [];
или опять не понял
|
|
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>
|
|
23.03.2014, 16:21
|
Интересующийся
|
|
Регистрация: 19.03.2014
Сообщений: 22
|
|
рони,
Poznakomlus,
Спасибо за помощь, всё функционирует!
|
|
|
|