Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
jQuery,JSON:Javascript obj/array到JSON,用于jQuery.ajax_Jquery_Json - Fatal编程技术网

jQuery,JSON:Javascript obj/array到JSON,用于jQuery.ajax

jQuery,JSON:Javascript obj/array到JSON,用于jQuery.ajax,jquery,json,Jquery,Json,这是一个与此类似的问题: 除了我有一个对象,其中有几个数组 对象看起来像(模拟的): {“用户”:[1,2,3,4],“客户”:[5,6,7,8],“完成状态”:“过期”,“日期范围”:“本周”} 并且是这样创建的: Filter = new FilterData; Filter.Add(9, "Clients"); Filter.Add(12, "Clients"); Filter.Add(75

这是一个与此类似的问题:

除了我有一个对象,其中有几个数组

对象看起来像(模拟的):

{“用户”:[1,2,3,4],“客户”:[5,6,7,8],“完成状态”:“过期”,“日期范围”:“本周”}

并且是这样创建的:

            Filter = new FilterData;

            Filter.Add(9, "Clients");
            Filter.Add(12, "Clients");
            Filter.Add(75, "Clients");

            Filter.Add(9, "Users");
            Filter.Add(12, "Users");
            Filter.Add(75, "Users");

            Filter.SetValue("DateRange", "yesterday");

    function FilterData(){

        this.Users = [];

        this.Clients = [];

        this.Options = [];
        this.Options.CompletionStatus = [];
        this.Options.DateRange = [];

        this.Add = function(id, type){
            this[type].push(id);
            this[type] = this[type].unique();
            return;
        }

        this.Rem = function(id, type){+
            this[type].splice( Filter[type].indexOf(id), 1);
            this[type] = this[type].unique();
            return;
        }

        this.SetValue = function(key, value){
            this.Options[key] = value;
        }

    }

如果我这样做:

AjaxRequest = $.ajax({
...
data: Filter,
...
});
似乎obj最终会是这样的:…Users=1&Users=2&Users=3&

这导致PHP只能为用户看到一个值,在本例中是最后一个值,即3

其中,我需要PHP正确地查看数组:…Users[]=1&Users[]=2&Users[]=3&

你知道怎么纠正吗

Example:

In firebug, my post looks like this:

Clients 1
Clients 10
CompletionStatus    pastdue
DateRange   14
Users   2
Users   3
Users   4

and my response looks like this:
page: <?php print_r($_POST) ?>

Array
(
    [Users] => 4
    [Clients] => 10
    [CompletionStatus] => pastdue
    [DateRange] => 14
)
示例:
在firebug中,我的帖子如下所示:
客户1
客户10
完成状态过期
日期范围14
用户2
用户3
用户4
我的回答是这样的:
第页:
排列
(
[用户]=>4
[客户]=>10
[完成状态]=>到期日
[日期范围]=>14
)

在javascript中将用户名更改为Users[]Users[]”是javascript对象的有效属性名:

var o= { 'Users[]': 'hello user' }; 
alert(o['Users[]']);

在javascript中将用户名更改为Users[]Users[]”是javascript对象的有效属性名:

var o= { 'Users[]': 'hello user' }; 
alert(o['Users[]']);

您是否可以只使用内置的param方法


这似乎是你想要的。如果您想要最新版本,jQuery 1.4alpha中还添加了一些很酷的功能。

是否可以只使用内置的param方法


这似乎是你想要的。如果你想要最前沿的版本,jQuery 1.4alpha中还有一些更酷的添加。

你能举个例子说明“obj”实际上是什么样子吗?事实上,更好的问题是,你是如何构建“obj”的?你能举个例子说明“obj”实际上是什么样子吗?事实上,更好的问题是,你是如何建立“obj”的?伟大的人都有相同的想法,但出于某种原因,param()也做同样的事情。只有一个值。现在应该可以使用jQuery>=1.4。“从jQuery1.4开始,$.param()方法递归地序列化深层对象,以适应现代脚本语言和框架,如PHP和RubyonRails。”-是的!它还没有完全推出,但现在1.4.2可能已经不远了——尽管在该版本中param前端没有任何更改。查看jQuery BBQ插件,了解原生param方法附带的“deparam”方法。伟人的想法相似,但出于某种原因,param()也做了同样的事情。只有一个值。现在应该可以使用jQuery>=1.4。“从jQuery1.4开始,$.param()方法递归地序列化深层对象,以适应现代脚本语言和框架,如PHP和RubyonRails。”-是的!它还没有完全推出,但现在1.4.2可能已经不远了——尽管在该版本中param前端没有任何更改。查看jQuery BBQ插件,了解原生param方法附带的“deparam”方法。