2014-01-28 118 views
0

我试着通过AJAX通过ID作为阵列,但是当我dump出来GET变量在服务器端使用PHP我没有得到任何值,则数组为空。调试与萤火我看到数组获得通过,但[]编码ids%5B%5D使用Ajax传递数组服务器

我的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']空倾销孔$_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 

如何正确传递数组?

+0

的$ _GET ['IDS]将使解析错误。但是,尝试做一个职位,而非get。 – Ryan

+0

您是否将js变量cat_ids设置为某个东西?它在你的函数中看起来是空的,所以它会传递null。 – joe42

回答

0

既然你已经通过获取值URL这里诠释,他的:

/管理/ 控制器=产品&行动= 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); 
      } 
     }); 
    } 
+0

感谢您的反馈,我给一个尝试 – fefe

+0

相同。什么是有趣的是,在我的下XAMPP本地主机我不正视这个问题,但在现场的Ubuntu服务器的DOS不行 – fefe