Javascript 使用jquery.post()发送所有输入字段

Javascript 使用jquery.post()发送所有输入字段,javascript,jquery,Javascript,Jquery,我已将所有输入字段的值收集到一个数组中,如下所示: $( ".formbox" ) . each( function(id,elem){ form_fields[ "input-" + $( elem ) . attr( "id" ) ] = $( elem ) . val( ); }); $.log( "Collected:", form_fields ); 这确实有效,然后我尝试使用post传递数组 $.post( "server.php", {

我已将所有输入字段的值收集到一个数组中,如下所示:

 $( ".formbox" ) . each( function(id,elem){
    form_fields[ "input-" + $( elem ) . attr( "id" )  ] = $( elem ) . val( ); 
   });

 $.log( "Collected:", form_fields );
这确实有效,然后我尝试使用post传递数组

 $.post(
    "server.php", 
    {
        fields: form_fields
    },
    function(ret) {

       if (!ret.success )
         alert ( "Error! Reload please!" );
       else
       {
       }
    }, 
    'json'
  );
但是,在检索时,Firebug指示字段为空

据我所知,我需要序列化数组,或者根本不使用它。但是我可以用什么来代替呢

请告诉我我做错了什么

-----增加----- …我刚找到这个

 form_fields = {};
:

我不明白这是怎么解决问题的 请告诉我数组和{}之间的区别是什么?{}在JS中有什么作用?

我只能推荐。它处理了所有这些混乱,甚至支持透明的文件上传模式。因为通常情况下,您无法使用AJAX上传文件。

我只能推荐使用。它处理了所有这些混乱,甚至支持透明的文件上传模式。因为通常情况下,您无法使用AJAX上载文件。

请尝试:

var fields = {};
$('.formbox input').each(function(){
    var $this = $(this);
    fields['input-' + $this.attr('name')] = $this.val(); 
});

$.log( "Collected:", fields );


$.post("server.php", fields, function(ret) {
   if (!ret.success)
     alert ( "Error! Reload please!" );
   else{
   }
}, 'json');
表单_字段={};表示将空对象指定给表单_字段。{}用于表示对象,而[]用于表示数组。

试试:

var fields = {};
$('.formbox input').each(function(){
    var $this = $(this);
    fields['input-' + $this.attr('name')] = $this.val(); 
});

$.log( "Collected:", fields );


$.post("server.php", fields, function(ret) {
   if (!ret.success)
     alert ( "Error! Reload please!" );
   else{
   }
}, 'json');
表单_字段={};表示将空对象指定给表单_字段。{}用于表示对象,而[]用于表示数组。

{}用于创建对象,[]用于表示索引的数组。区别在于

示例代码:

var obj = {name:"Captain",last_name:"Caveman",run:function(speed){//run;}}

//equivalent to 

var obj = new Object();
obj.name = "Captain";
obj.last_name = "caveman";
obj.run = function(speed){
  //run;
}
我刚刚创建了一个新的动态对象,{}按照下面的代码调用它的成员

document.write(obj.name); 
document.write(obj.run("fast"));
但是数组比对象更简单

JSON:Javascript对象表示法

关于JSON的更多信息:

关于数组的更多信息:

{}用于创建对象,[]用于数组以指示索引。区别在于

示例代码:

var obj = {name:"Captain",last_name:"Caveman",run:function(speed){//run;}}

//equivalent to 

var obj = new Object();
obj.name = "Captain";
obj.last_name = "caveman";
obj.run = function(speed){
  //run;
}
我刚刚创建了一个新的动态对象,{}按照下面的代码调用它的成员

document.write(obj.name); 
document.write(obj.run("fast"));
但是数组比对象更简单

JSON:Javascript对象表示法

关于JSON的更多信息:


关于阵列的更多信息:

您的想法是正确的,但我正在尝试从零做起,尽量少使用插件等等。因为这会使应用程序变慢。我认为速度损失实际上可以忽略不计。下载量只有几k,比大多数图片都少。而且计算开销也很小。你的想法是正确的,但我正试图从零做起,尽量少使用插件等等。因为这会使应用程序变慢。我认为速度损失实际上可以忽略不计。下载量只有几k,比大多数图片都少。而且计算开销也非常小。