将带有ajax的数组传递给服务器

时间:2014-01-28 15:16:42

标签: php jquery ajax

我尝试通过ajax将id作为数组传递,但是当我在服务器端使用PHP转储get变量时,我没有得到任何值,数组为空。使用firebug进行调试我发现数组已通过但[]已编码ids%5B%5D

我的javascript

  function update_category(selected) {
        $.ajax({
            url: '/admin/?controller=products&action=update_category',
            type: 'GET',
            dataType: "application/JSON",
            data: {
                ids: cat_ids,
                s_category: selected
            },
            success: function(data) {
                addAlert('alert-'+data, data);
            },
            error: function(data) {
                addAlert('alert-'+data.responseText, data.responseText);
            }
        });
    }

var_dump $_GET['ids'] null转储漏洞$_GET我得到[" ids%5B%5D"]

我不明白为什么数组在linux环境中的提交时被编码

在ubuntu下12.10 PHP 5.3.10 Firebug XHR-> PARAMS

  action    update_category
    controller  products
    ids%5B%5D   1403172219
    ids%5B%5D   1530542001
    s_category  1

如何正确传递数组?

1 个答案:

答案 0 :(得分:0)

由于您已在此处将URL传递给GET值:

  

/管理/的控制器=产品和安培;行动= update_category

然后data中的信息可能永远不会过去。

请改为尝试:

  function update_category(selected) {
        $.ajax({
            url: '/admin/',
            type: 'GET',
            dataType: "application/JSON",
            data: {
                ids: cat_ids,
                s_category: selected,
                controller: 'products',
                action: 'update_category'
            },
            success: function(data) {
                addAlert('alert-'+data, data);
            },
            error: function(data) {
                addAlert('alert-'+data.responseText, data.responseText);
            }
        });
    }