0

我使用 YII 并将数据作为“table[attr1]=1&table[attr2]=2&table[attr3]=3”发送,因此使用 jquery 发出请求我使用:

 $.ajax({  
        url:"url",
        data:{
             'table[attr1]':1,
             'table[attr2]':2,
             'table[attr3]':3,
        },
        success:function(resp){
            //ok
        }
    });

但我需要动态地制作这个数据 json,我尝试了这个,但工作量不大:

$("input").each(function(){ //build the data json       
    form.table[this.name]=this.value;  //the name is 'attr1' , the value is 1
});  



     $.ajax({  
        url:"url",
        data:form, //send the JSON here
        success:function(resp){
            //ok
        }
    });

这会将数据发送为空

任何想法如何构建这个json?

4

2 回答 2

1

你可以这样做

var form = {}; // create object
$('input').each(function(){
    form[this.name] = this.value; // add name/value
});

然后表单将根据名称/值保存一个对象,并假设您的元素名称是table[attr1]

{
  'table[attr1]': 1,
  'table[attr2]': 2,
  'table[attr3]': 3,
}
于 2013-01-31T19:32:38.057 回答
0

您发送的内容不涉及 JSON,要使x-www-form-urlencoded您的代码正常工作,您必须首先创建表单对象的 table 属性。

var form = {table:{}};
$("input").each(function(){  
    form.table[this.name] = this.value;  //the name is 'attr1' , the value is 1
});
$.ajax({  
    url:"url",
    data:form, 
    success:function(resp){
        //ok
    }
});
于 2013-01-31T19:34:11.190 回答