2011-09-01 55 views
1

如何通过$ .post发布JSON多维数据?举例来说,我有一个JSON格式这个多维数组:如何通过Jquery.post发布JSON多维数据?

{ 
    "file": 
    { 
     "name" : "1024x768.jpg", 
     "type" : "image\/jpeg", 
     "tmp_name" : "C:\\wamp\\tmp\\php8F59.tmp", 
     "error":0,"size":469159 
    } 
} 

我会用Jquery.post()张贴JSON数据。

$.post("process.php",'{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php8F59.tmp","error":0,"size":469159}}',function(xml){ 

}); 

这样我就可以使用print_r($_POST)得到这个数组中process.php

Array 
(
    [file] => Array 
     (
      [name] => 1024x768.jpg 
      [type] => image/jpeg 
      [tmp_name] => C:\wamp\tmp\phpA1.tmp 
      [error] => 0 
      [size] => 469159 
     ) 
) 

这可能吗?

+0

'$。员额(//东西在这里,数据:$(yourArray).serialize());',也许? –

+0

我应该为'$(yourArray)'准备什么样的数据?谢谢。 – laukok

+1

它可以是一个数组或一堆使用jQuery选择器的对象;两者都是数据数组,而'.serialize()'会查找所有':input'元素,或者如果它是一个数组,则序列化整个批次。 – Bojangles

回答

1

试试这个:

$.post("process.php",{"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php8F59.tmp","error":0,"size":469159}},function(xml){ 

}); 

,应该给你在PHP端

编辑所需的数组:这个作品,因为jQuery的1.4及以上

+0

是的我得到了我想在PHP中的数据。但我得到的JSON数据是一个'字符串' - 我如何将字符串转换为JSON? – laukok

+0

您使用的是哪个版本的jQuery? – stewe

+0

1.6.1。但我现在把它转换成了json!哈哈谢谢。 – laukok

1
$jsonArray ='{"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php8F59.tmp","error":0,"size":469159}}'; 
$arr = JSON.stringify($jsonArray); 

$.post("/url",{data:$arr},function(){ 

}); 
在PHP文件

$json = json_decode($_POST['data']); 
print_r($json); 

编辑

可能,这将帮助,我没有测试它虽然...

var file=[]; 
file["name"]="1024x768.jpg"; 
file["type"]="image/jpeg"; 
file["tmp_name"]="C:\wamp\tmp\phpA1.tmp"; 
file["error"]="0"; 
file["size"]="469159"; 


var myObject = new Object(); 
var enumm=["name","type","tmp_name","error","size"]; 

function getEnum(index){ 
    return enumm[index]; 
} 


$.each(file,function(i,j){ 
myObject[getEnum(i)]=file[getEnum(i)]; 
}); 


$.post("/url",{data:$.param(myObject)},function(xml){ 

}); 

php方面做

$json = parse_str($_POST['data'], $data); 
print_r($json); 
+0

谢谢。我将得到这个json数据'{“file”:{“name”:“1024x768.jpg”,“type”:“image \/jpeg”,“tmp_name”:“C:\\ wamp \\ tmp \\ php8F59 .tmp“,”error“:0,”size“:469159}}'后面这不是我对不起。 – laukok

+0

看到编辑也许它会帮助... – Rafay