2014-12-09 52 views
1

我知道这个问题已经被问过很多次,但没有人帮助过我。 我正在尝试通过使用$ .ajax()的数据传递数组数组(它们可能有也可能没有数组)。从服务器收到的响应应该与发送的数据相同(按照php中的代码),但发送空白对象。 请帮助我知道传递这样一个数组的正确语法。

val_pass是一个数组数组,而#display_message是要附加的段落。这里去我的代码:

$.ajax({ 
     type: 'POST', 
     url: 'http://someurl.com/', 
     // data: JSON.stringify(val_pass), 
     // data: JSON.stringify({paramName: val_pass}), 
     // data: {'myArray': val_pass}, 
     // data: $.toJSON(val_pass), 
     data: {val_pass: val_pass}, 
     // data: $.serialize(val_pass), 
     success: function(response){ 
      console.log(response); 
      $('#display_message').append('Data successfully passed'); 
     }, 
     error: function(xhr, status, errorThrown){ 
      console.log(xhr+status+errorThrown); 
      alert("Sorry"); 
     }, 
    }); 

PS:评论行是各种方式,我试图传递一个数组。我是新来的阿贾克斯,请忽略我的noobness。

+0

你可以添加你的相关的php代码吗? – empiric 2014-12-09 12:06:32

+1

问题是什么?使用JSON.stringify:'JSON.stringify([[1,2,3],[4,5,6]])'=>“[[1,2,3],[4,5,6]]” 。我认为你需要更多的关注你的PHP代码,将一个响应解析为一个数组数组。 – Pinal 2014-12-09 12:07:34

+0

我试着使用这个通过看到类似的问题和答案,它适用于这个简单的数组 var info = []; info [0] ='hi'; info [1] ='你好'; $就({ 类型: “POST”, 数据:{信息:信息}, URL: “的index.php”, }); – 2014-12-09 12:11:12

回答

0

我得到了该问题的解决方案。 首先不是传递数组数组,而是将它作为一个对象数组发送。现在

我val_pass是objects.Code的数组:

var jObject={}; 
jObject = JSON.stringify(val_pass); 

$.ajax({ 
    type: 'POST'; 
    data: {jObject: jObject}; 
    url: some_url; 
}); 

http://pavanarya.wordpress.com/2012/09/09/calling-a-webservice-using-jquery-and-passing-jsonarray-object/

称此链接寻求帮助。

+2

你是如何在PHP中处理接收页面的? – Vincent 2015-04-28 17:02:38

1

如果你使用的是Json,那么type应该是json。而成功的函数参数即json是保存数据的变量。所以数据:JSON

$.ajax({ 
url: url_to_load, 
dataType: 'json', 
data: json, 
success: function(json){ 
}; 
}); 

更加用户友好的版本如下:

$.getJson("service.php",function(json){ 
//code goes here 
});