2012-04-21 80 views
0

在我的網頁我有多個形式都是一樣的,因爲這...更新表記錄時,多個實例

<form class='bill-upd'> 
    <input type='hidden' value='".$info['rand']."' name='rand2' id='rand2'> 
    <input type='hidden' value='".$info['id']."' name='billid' id='billid'> 
    Total <input type='text' id='total' name='total' /><br /> 
    Bill name<input type='text' id='bill-name' name='bill-name' /><br /> 
    bill descriptiion <input type='text' id='bill-description' name='bill-description' /><br /> 
    bill colour<input type='text' id='bill-colour' name='bill-colour' /> 
    <input type='button' value='submit' onClick='updateBill();' /> 
</form> 

然後我有我的AJAX爲使

function updateBill() 
{ 
    $.post('update_bill.php', $('.bill-upd').serialize(), 
     function(data) { 
     $(this).append(data); 
    }); 
}; 

如果我在我的頁面上有一個表單,這工作正常,但是當有多個實例時,我的同一個記錄被覆蓋,有人可以告訴我哪裏出錯了?

感謝


隨着@Armatus和@Bricriu的幫助下,我得到它排序,答案標示工作,愣神忘記內的document.ready

+1

您正在打印'$信息[「身份證」]'在一個循環,'$ info'會不同的每一次迭代? – Armatus 2012-04-21 21:18:44

+0

我是啊@Armatus – Liam 2012-04-21 21:20:35

回答

1

您需要一種方法來指定您正在更新的帳單,否則它只需要全部這些帳單。這應該起作用,因爲我們可以確定哪個按鈕被點擊是哪一個。

編輯:我個人綁定,即使使用jQuery,而不是的onClick元素本身:

$(".bill-upd input:submit").click(function(){ 
    var elem = $(this); 
    $.post('update_bill.php', elem.parent('.bill-upd').serialize(), 
     function(data) { 
     elem.append(data); 
    }); 
}); 
+0

謝謝@bricriu,似乎並沒有工作,但是,我沒有收到任何錯誤和螢火蟲說,它發佈的數據,但它並沒有實際更新... – Liam 2012-04-21 21:07:51

+0

哦,對。這是因爲$(this)的範圍問題。我將編輯。 – bricriu 2012-04-21 21:08:47

+0

仍然沒有運氣@bricriu :( – Liam 2012-04-21 21:11:22

0

包裹它如果其他形式的有同樣的類.bill-upd javascript .serlialize()也會從中獲取值。確保其他表格有替代課程。

什麼會更好,如果你給了形式獨特的ID是如id="billform",然後用$('#billform').serialize()替換$('.bill-upd').serialize()

希望這會有所幫助。

編輯:

使用此:

$(this).parent('.bill-upd').serialize() 

序列化的是它被點擊父。

+0

最初我確實有他們作爲ID的,但仍然無法讓它與頁面上的多個窗體實例一起工作.... – Liam 2012-04-21 20:50:12

+0

它是同一個窗體的多個實例嗎? – gimg1 2012-04-21 20:50:56

+0

同樣的佈局明智是的,他們都有不同的價值,雖然... – Liam 2012-04-21 20:52:15