在我的页面上,我有多个表格,与此相同......
<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
答案 0 :(得分: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);
});
});
答案 1 :(得分:0)
如果其他表单具有相同的类.bill-upd
,则javascript .serlialize()
也会从中获取值。确保其他表单具有备用类。
如果您为表单提供了id="billform"
这样的唯一ID,然后将$('.bill-upd').serialize()
替换为$('#billform').serialize()
,那会更好。
希望这有帮助。
编辑:
使用此:
$(this).parent('.bill-upd').serialize()
序列化被点击的父项。