Как я могу опубликовать многомерные данные JSON через $ .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){ });
Поэтому я могу получить этот массив в process.php
используя print_r($_POST)
:
Array ( [file] => Array ( [name] => 1024x768.jpg [type] => image/jpeg [tmp_name] => C:\wamp\tmp\phpA1.tmp [error] => 0 [size] => 469159 ) )
Это возможно?
Попробуй это:
$.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 и выше
$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 do
$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 do
$json = parse_str($_POST['data'], $data); print_r($json);