Цитата:
дело в том, что пользователь может сделать несколько разных действий как то добавить, удалить, изменить в том числе и массив верхнего уровня. все его действия будут в $str и затем одним Submit передастся на сервер. можно и по одному элементу, но тогда пользователю придётся нажимать submit после каждого своего действия. действий может быть много. это время. |
/* даёт ошибку элемент не поддерживает push*/
arr[i]['param3'].push({ arr[i]['param3'] = []; arr[i]['param3'].push({ ... |
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"}')) |
Poznakomlus,
рони, работает и так и так, но если в param3 уже были какие-то элементы - они замещаются новыми, а хотелось бы добавить. |
mrmammoth,
так укажите куда добавить то и добавте -- нарисуйте без php что было и чего хотите достичь чтоб мы вас поняли |
имеем на входе:
[{"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"}]}] и т.д. |
arr[i]['param3'] = arr[i]['param3'] || []; или опять не понял |
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> |
рони,
Poznakomlus, Спасибо за помощь, всё функционирует! |
Часовой пояс GMT +3, время: 14:10. |