Javascript 使用类而不是ID发布ajax数据
我有一个由PHP生成的表单:Javascript 使用类而不是ID发布ajax数据,javascript,jquery,ajax,forms,post,Javascript,Jquery,Ajax,Forms,Post,我有一个由PHP生成的表单: <form id="change_status_form" name="change_status_form"> <input name="booking_int" type="hidden" value="'.$upcoming_bookings[$x]['booking_int'].'"> <select name="booking_status" onchange="change_status();"> <op
<form id="change_status_form" name="change_status_form">
<input name="booking_int" type="hidden" value="'.$upcoming_bookings[$x]['booking_int'].'"> <select name="booking_status" onchange="change_status();">
<option selected value="0">
Not Yet Arrived
</option>
<option value="1">
Seated
</option>
<option value="4">
Cancelled
</option>
<option value="5">
No Show
</option>
</select>
一旦提交,它将把数据发布到dash\u change\u booking\u status.php。这一次效果很好,但我需要多次重复该表单,而不知道重复了多少次。当我这样做时,ajax将只在第一个上工作
我认为这与表单的id有关,我应该将其更改为类。有人能告诉我如何a)更改表单的类别,以及b)如何发布数据吗
顺便说一句,如果我在表单底部添加,它将停止发布 根据您的问题,您似乎是在动态生成内容,而且它只在第一次工作。下面的代码应该在不涉及类或id的情况下完成这个技巧。 你能用
替换
吗
您只需将$('#booking_status')更改为$('.booking_status'),然后您的查询将有多个值,您需要将每个表单包装在一个唯一的包装类或id中
<form id="form1">
<input type="text" class="booking_status">
</form>
您可以将表单的id传递给onchange函数
将
id=“change\u status\u form”
更改为class=“change\u status\u form”
并在jquery中相应地获取表单。@Inuka通过“相应地获取表单”,您能举个例子吗?我认为我正在努力解决的主要问题是,如果数据没有与表单ID一起提供,如何发布数据。我不知道动态生成的表单会有多少个。您可以动态设置表单ID。我已将脚本更改为您的,但它也在做同样的事情,只允许我发布第一个表单。我遇到以下错误:“未捕获的TypeError:无法读取属性'value'…”。是否需要更改'change\u status\u form'部分?
$(document).on("change", "select.booking_status", function(){
var $form = $(this).parents('form:first');
$.post('dash_includes/dash_change_booking_status.php', {
booking_status: $form.find("select[name='booking_status']").val(),
booking_int: $form.find("input[name='booking_int']").val()
}, function(output) {
$('#all_bookings_div').load('dash_includes/dash_display_all_bookings.php').fadeIn("slow");
});
});
<form id="form1">
<input type="text" class="booking_status">
</form>
$('#form1 .booking_status').val()