Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用类而不是ID发布ajax数据_Javascript_Jquery_Ajax_Forms_Post - Fatal编程技术网

Javascript 使用类而不是ID发布ajax数据

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

我有一个由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();">
    <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()