Hi,
Du bewegst Dich mit der Zeile <input type="text" name="data[vorname]"> in HTML. HTML kennt keine Variablen oder gar Arrays. Um Arrays hier nutzen zu können, musst Du die Zeile selber mit JavaScript schreiben, etwa so:
document.write('<input type="text" name="' + data[vorname] + '">');
Das könntest Du dann wieder über z.B. document.forms[0].data[vorname].value (evtl. ist eval drumrum notwendig) auslesen.
Grüße,
Utz