2010-09-30 6 views
5

Come serializzare gli input di moduli dinamici?Come utilizzare la funzione .serialize di jQuery con elementi di forma dinamici

<table id="mytable"> 
<form id="myform"> 
<tbody> 
    <tr><td><input type="text" name="row0"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row1"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row2"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row3"></td></tr> <!-- dynamically generated --> 
</tbody> 
<tfoot> 
    <tr><td><input type="button" id="save" value="SAVE"></td></tr> <!-- static --> 
</tfoot> 
</form> 
</table> 

voglio usare jQuery per caricare le informazioni da PHP

$('#save').click(function(){ 
    $.ajax({ 
    type: "POST", 
    url: "post.php", 
    data: $('#myform').serialize(), 
    success: function(msg){ 
     console.log(msg); 
    } 
    }); 
}); 

Questo lavoro non è un problema se le righe non sono stati generati in modo dinamico, ma non riesco a capire come accedere o serializzare l' contenuto dinamico.

risposta

11

serializzazione di contenuti dinamici funziona bene il modo in cui lo avete (dal momento che si sta facendo in un gestore di click, non sul carico) ... ma è necessario avere un elemento valido <form> avvolto intorno alla <table>, in questo modo:

<form id="myform"> 
<table id="mytable"> 
<tbody> 
    <tr><td><input type="text" name="row0"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row1"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row2"></td></tr> <!-- dynamically generated --> 
    <tr><td><input type="text" name="row3"></td></tr> <!-- dynamically generated --> 
</tbody> 
<tfoot> 
    <tr><td><input type="button" id="save" value="SAVE"></td></tr> <!-- static --> 
</tfoot> 
</table> 
</form> 

You can test it out here.

+0

Stava raccogliendolo quando non era generato dinamicamente. Mi chiedo perché abbia problemi quando è dinamico. – polyhedron

+1

Questo l'ha risolto. – polyhedron

+0

@polyhedron - Con le marcature non valide le cose non sono imputabili ... potrebbe aver inserito il modulo in modo diverso nel DOM con gli elementi in precedenza. –

Problemi correlati