Aggiungere elemento di module in modo dinamico utilizzando javascript – non submit

Modifica: ho risolto il problema solo partendo da zero. Spiacenti di perdere tempo. Si prega di votare per chiudere se ti senti così incline.

Ho difficoltà a ricevere i dati effettivi in ​​un module da submit quando i campi di input vengono aggiunti tramite javascript. I campi vengono visualizzati e nel posto giusto, ma quando faccio una var_dump (nome del field) sul lato server, non viene visualizzato nulla. L'ispezione con le intestazioni HTTP in diretta mi dice che il browser non sta tentando di submit i campi module formati in modo dinamico.

Devo in qualche modo "albind" i miei input di module dinamico creati al module?

Il mio codice:

HTML

<form id="att_form" method="post" name="add_attachments" enctype="multipart/form-data" action="#"> <-- below input to prove form submits, just not the dyn added elements --> <input name="data[one]" type="text" /> <div id="add_fields"></div> <input type="submit" /> </form> 

Javascript

 function addFormField() { var id = 1; var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>"; $("#add_fields".append( htm ); } 

Quando invio il module, il mio input dato denominato [one] si presenta come un valore POSTd, ma quelli aggiunti con addFormField () non lo fanno. Essi appaiono, nell'HTML, nel posto giusto, ma non POST. Devo aggiungere l'elemento come un figlio al mio elemento di forma per farlo submit?

Ho visto submit i campi di input di module aggiunti con javascript che è where ho l'idea di aggiungere i dati specificamente al figlio di forma, ma ciò richiederà una ristrutturazione del mio CSS. Quindi, spero che sia qualcosa di semplice che posso fare nel codice di cui sopra.

Grazie in anticipo!

modifica: è stato risolto il tipo di errore, ma non funziona. Ho deciso di utilizzare il metodo JS gratuito per la libreria discusso nel link SO sopra, perché funziona bene. Grazie per l'aiuto però!

Ci sono stati molti errori di battitura nel codice. Ad esempio, non hai chiuso il tag di selettore per jquery.

Hai messo $("#add_fields".append( htm );

Dovrebbe essere $("#add_fields").append( htm );

Notate i parantheses mancanti.

Ma credo che il tuo problema riguarda principalmente come stai cercando di accedere ai valori attraverso PHP. Ho appena messo la tua fonte in una pagina di prova e tutto funziona se si accede correttamente ai valori.

 <?php foreach ($_REQUEST['txt'] as $printme) echo $printme."<br/>"; ?> 

La fonte sopra funziona bene.

ci sono 2 errori di battitura nel codice: htm invece che html

e add_fields / add_files

È il tuo codice reale?

Se è così, non hai chiuso il tag di input e il tag p .. quindi forse la forma li ignora ..

 var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>"; 

Quando si aggiunge / aggiunge o utilizza innerHtml per inserire i campi di module come html, in qualche modo lo metterà fuori dalla forma, lo vedrai come parte della forma, ma internamente non lo è.

Per risolvere questo problema è necessario aggiungere l'attributo di form con input immesso come form=myForm , e myForm deve essere il tuo ID module.