如何通过ajax发送JSON数组? [英] how to send JSON array through ajax?

查看:104
本文介绍了如何通过ajax发送JSON数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

var storeSettings = [];

                        obj.find(o_widgetClass).each(function(){
                            var storeSettingsStr          = {};
                            storeSettingsStr['id']        = $(this).attr('id');
                            storeSettingsStr['style']     = $(this).attr('data-widget-attstyle');
                            storeSettingsStr['title']     = $(this).children('header').children('h2').text();
                            storeSettingsStr['hidden']    = ($(this).is(':hidden') ? 1 : 0);
                            storeSettingsStr['collapsed'] = ($(this).hasClass('powerwidget-collapsed') ? 1 : 0);
                            storeSettings.push(storeSettingsStr);
                        }); 

                        var storeSettingsObj = JSON.stringify( {'widget':storeSettings} );

                        /* Place it in the storage(only if needed) */
                        if(getKeySettings != storeSettingsObj){
                            //alert(storeSettingsObj);
                            var memberfilter = new Array();
                            memberfilter[0] = "id";
                            memberfilter[1] = "style";
                            var jsonText = JSON.stringify(storeSettings, memberfilter);
alert(jsonText);


   // it gives this result 
[{"id":"widget1"},{"id":"widget3","style":"black"},{"id":"widget4"},{"id":"widget5"},{"id":"widget2","style":"black"},{"id":"widget6"},{"id":"widget7"},{"id":"widget9"},{"id":"widget8"},{"id":"widget10"},{"id":"widget12"},{"id":"widget13"},{"id":"widget11"},{"id":"widget14"}]

现在如何通过jquery ajax发送它?我正在尝试使用以下提到的代码,但尚无法在服务器上获取数据

Now how can i send it through jquery ajax ? i am trying with the below mentioned code but not yet able to do get data on server

$.ajax({
    type: 'POST',
    url: 'get_query.php',                      
    data: "test="+jsonText,
    success: function(data) {
        alert(data);
        }
});

所以您能解释一下如何发送然后如何获取此数据吗?我尝试用json_decode尝试但对我不起作用.

So could you plz explain how to send and then how to get this data ? i have tried with json_decode but not working for me.

在xdazz评论后进行编辑,以使其不带字符串即可发送

当我print_r($ _ POST ['test'])

Got this when i print_r($_POST['test'])

Array

( [0] =>数组 ( [id] => widget1 [title] =>隐藏的小部件 [隐藏] => 1 [崩溃] => 0 )

( [0] => Array ( [id] => widget1 [title] => Hidden widget [hidden] => 1 [collapsed] => 0 )

[1] => Array
    (
        [id] => widget3
        [style] => red
        [title] => Icons
        [hidden] => 0
        [collapsed] => 0
    )

[2] => Array
    (
        [id] => widget4
        [style] => black
        [title] => No toggle button
        [hidden] => 0
        [collapsed] => 0
    )

[3] => Array
    (
        [id] => widget5
        [title] => No delete button
        [hidden] => 0
        [collapsed] => 0
    )

[4] => Array
    (
        [id] => widget6
        [title] => No edit button
        [hidden] => 0
        [collapsed] => 0
    )

[5] => Array
    (
        [id] => widget7
        [title] => Not fullscreen button
        [hidden] => 0
        [collapsed] => 0
    )

[6] => Array
    (
        [id] => widget9
        [title] => No custom button
        [hidden] => 0
        [collapsed] => 0
    )

[7] => Array
    (
        [id] => widget8
        [title] => Not sortable
        [hidden] => 0
        [collapsed] => 0
    )

[8] => Array
    (
        [id] => widget10
        [title] => Collapsed widget
        [hidden] => 0
        [collapsed] => 1
    )

[9] => Array
    (
        [id] => widget12
        [title] => Auto refresh
        [hidden] => 0
        [collapsed] => 0
    )

[10] => Array
    (
        [id] => widget2
        [style] => black
        [title] => Basic widget
        [hidden] => 0
        [collapsed] => 0
    )

[11] => Array
    (
        [id] => widget13
        [title] => No timestamp
        [hidden] => 0
        [collapsed] => 0
    )

[12] => Array
    (
        [id] => widget11
        [title] => Ajax
        [hidden] => 0
        [collapsed] => 0
    )

[13] => Array
    (
        [id] => widget14
        [title] => No refresh button
        [hidden] => 0
        [collapsed] => 0
    )

)

推荐答案

您无需对对象进行字符串化,直接将其用于data属性.

You don't need to stringify the object, use it directly for the data property.

$.ajax({
    type: 'POST',
    url: 'get_query.php',                      
    data: {test: myvariable},
    success: function(data) {
      alert(data);
    }
});

然后在php端,执行var_dump($_POST['test']);来查看获得的内容.

Then in the php side, do var_dump($_POST['test']); to see what you get.

这篇关于如何通过ajax发送JSON数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆