Jquery不收集textarea值,在特定条件下不向php发送数组

Jquery不收集textarea值,在特定条件下不向php发送数组,php,jquery,html,forms,Php,Jquery,Html,Forms,我试图创建一个系统,将所有textareas的值放入一个数组中,然后将其发送到php进行处理,如果页面只有textareas和textbox,如下所示: <div class='form-group'> <textarea class='col-sm-2' id='" + counter + "'></textarea> <div class='col-sm-10'> <input type='text'

我试图创建一个系统,将所有textareas的值放入一个数组中,然后将其发送到php进行处理,如果页面只有textareas和textbox,如下所示:

<div class='form-group'>
     <textarea class='col-sm-2' id='" + counter + "'></textarea>
     <div class='col-sm-10'>
         <input type='text' class='form-control'></input>
     </div>
</div>

一切顺利。但是,如果页面中包含收音机框:

<div class='form-group'>
    <textarea class='col-sm-2' id='" + counter + "'></textarea>
    <div class='radio'>
        <input type='radio' name='optradio'></input>
        <textarea class='col-sm-2' id='" + counter + "'></textarea>
    </div>
    <div class='radio'>
        <input type='radio' name='optradio'></input>
        <textarea id='" + counter + "'></textarea>
    </div>
</div>

jquery代码不会收集所有文本区域,也不会成功地将其发送到php代码进行处理

    $("#save").click(function () {
        for (var i = 0; i < counter; i++) {
            form1[i].push($("#" + i).val());
        }
        $.post("FormResponse.php", {form: form1, formid:$("#formnum").val()}, function (response, status) {
          document.write(response);
        });
$(“#保存”)。单击(函数(){
对于(变量i=0;i
更新:

我改变了我的jquery代码,将类型和textarea值都放在一个地方,但仍然不起作用。我不想使用对象,因为我希望php代码能够轻松区分哪些textarea属于哪些输入

以下是代码修订:

$("#save").click(function () {
    var ind = 0;
    for (var i = 0; i < inputcounter; i++) {
        if (document.getElementById("input#" + i) !== null) {
            form1.push($("input#" + i).type());
            ind = ind + 1;
        } 
        form1[ind].push($("textarea#" + i).val());
    }
    document.write(form1);
    $.post("FormResponse.php", {form: form1, formid: $("#formnum").val()}, function (response, status) {
        document.write(response);
    });
});
$(“#保存”)。单击(函数(){
var-ind=0;
对于(变量i=0;i
尚未测试,但请尝试此操作

 $("#save").click(function () {

var data = {};

$.each($('textarea'),function(){
var $this = $(this);
data[$this.id] = $this.val();
})

$.post("FormResponse.php",data,function(rep){
console.log(rep);
});

});
编辑

我不知道你的评论是什么意思

  • 您知道您在代码中发送了一个对象,对吗
  • PHP代码仍然以相同的方式访问数据
  • 如果您的意思是不知道数据将在哪个索引中,请尝试下面的代码

    $("#save").click(function () {
    
     var data = {};
    
     $.each($('textarea'),function(){
      var $this = $(this);
     data[$this.id] = $this.val();
    })
    
     $.post("FormResponse.php",{form:data, formid:$("#formnum").val()},function(rep){
    console.log(rep);
    });
    
    });
    

  • 我不想使用对象,因为我希望php代码能够很容易地区分哪些文本区域属于哪些输入。