Javascript 当PHP循环中有多个表单时,如何通过AJAX提交单个表单

Javascript 当PHP循环中有多个表单时,如何通过AJAX提交单个表单,javascript,php,ajax,forms,while-loop,Javascript,Php,Ajax,Forms,While Loop,我正试图提交一份关于键盘输入的表格,有点像键盘记录的效果。这是我的尝试- php循环表单- <form method="post" id="'.$vid.'" class="note-form"> <textarea id="'.$vid.'" name="quicknote" value="'.$quick_note.'" placeholder=&

我正试图提交一份关于键盘输入的表格,有点像键盘记录的效果。这是我的尝试-

php循环表单-

<form method="post" id="'.$vid.'" class="note-form">
    <textarea id="'.$vid.'" name="quicknote" value="'.$quick_note.'" placeholder="add a quick note" class="quicknote">'.$quick_note.'</textarea>
    <input type="hidden" name="tac" value="'.$vid.'"/>
</form>

我对表单和输入使用相同的ID,但表单未提交。如果我使用班级笔记表格,我可以提交,但它会提交所有表格。我不能将formID作为全局变量来传递给ajax函数。正确的方法是什么?

您的表单id和textarea id是相同的,这就是导致问题的原因。相反,你可以使用
$(this).最近('form')
这将从textarea获取最近的表单,然后您只能提交该表单

演示代码

$('.quicknote').bind('keyup',function(){
变量选择器=$(this.nexist('form')//获取最近的表单
$(选择器).delay(200).submit();//提交。
});
$(“表格”)。提交(功能(e){
log(“要发送的数据-->”+$(this.serialize())
var url=“ready data/submit note.php”;
$.ajax({
类型:“POST”,
url:url,
数据:$(this).serialize(),
成功:功能(数据){
//做点什么
}
});
e、 预防默认值();
});

有些事。。
有些事。。。
// Capture keyup from textarea to submit form

$('.quicknote').bind('keyup', function() { 
    var id = this.id;
    var formID = "#"+id;
    $(formID).delay(200).submit();
});
  
$(formID).submit(function(e) {
    var url = "ready-data/submit-note.php"; 
    $.ajax({
        type: "POST",
        url: url,
        data: $(this).serialize(),
        success: function(data) {
            // Do something
        }
   });
   e.preventDefault();
});