Because you send params like
hiddenInput.setAttribute('name', "[user][card_" + field + "]");
and name of param is [user]
, not user
On you screenshot there is [user]
in params, but should be user
Probably to fix this you need to set
hiddenInput.setAttribute('name', "user[card_" + field + "]");