2015-05-21 85 views
0

我有這段代碼。它將動態生成多個表單。我想問如何寫入Jquery代碼來發布只有選定的表單。 $ day實際上來自數據庫,爲了簡單起見,我將它分配到了6。jquery post動態表格

PHP

<?php 

$day = 6; 

for($i=1; $i<= $day ;$i++){ 

    echo "<div class='item'>"; 
    echo "<form class='itineraryForm' id='itineraryForm$i' method = 'post'>"; 
    echo "<table>"; 
    echo "<tr>"; 
    echo "<th>Time</th>"; 
    echo "<th>Activities</th>"; 
    echo "</tr>"; 
    echo "<tr>"; 
    echo "<td>"; 
    echo "<input type='text' class='i_field' name='time[]' value='' />"; 
    echo "</td>"; 
    echo "<td>"; 
    echo "<input type='text' class='i_field' name='activities[]' value='' />"; 
    echo "</td>"; 
    echo "</tr>"; 
    echo "</tbody>"; 
    echo "<input type='image' id='i_save_btn' src='img/save.png' value='SAVE' align='right'/>"; 
    echo "</table>"; 
    echo "</form>"; 
} 
?> 

JS

$().ready(function() { 
    $("#i_save_btn").click(function(e){ 
     $.post('inc/process.php', $(".itineraryForm").serialize(), function(data) {}); 
    }); 
}); 

回答

1

下面的代碼使用。

是呼叫Event Delegation

事件代表團允許我們附加一個單一的事件偵聽器,到 父元素,將火了 選擇匹配所有後代,無論是現在存在或添加這些後代在未來的 。

- >使用i_save_btn作爲類。總是應該是獨一無二的。

$(document).ready(function() { 
    $(document).on('click',".i_save_btn",function(e){ 
    e.preventDefault(); 
    $.post('inc/process.php', $(this).parents('form').serialize(), function(data) {}); 
    }); 
}); 

檢查DEMO

+0

如何使i_save_btn獨特之處?我也只想要點擊的特定窗體被序列化,而不是所有的窗體。 – user4815740

+0

使用可以使用'i_save_btn'作爲類名,並且這個代碼將從點擊的按鈕形式'$(this).parents('form')獲得數據。serialize()' –

+0

@ user4815740我已經在我的答案中添加了演示。請檢查 –