Следуя этому сообщению , у меня есть другая проблема: как я могу объединить два объекта данных json?
первый объект json,
{"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}}
второй объект json,
{"title":"title","content":"bla bla blah"} $.post("process.php", first + second ,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 ) [title] => title [content] => bla bla blah )
Глядя на ваш первый объект объекта данных, это не массив, который вы ожидаете от него в php
коде сервера. Это объект JSON
. В любом случае вы можете попробовать это, чтобы объединить объекты данных и опубликовать их.
var data1 = {"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}}; var data2 = {"title":"title","content":"bla bla blah"} var data = data1; data.title = data2.title; data.content = data2.content; $.post("process.php", data ,function(xml){ });
В качестве альтернативы вы можете использовать метод jQuery.extend
который объединяет содержимое двух или более объектов вместе в первый объект.
var data1 = {"file":{"name":"1024x768.jpg","type":"image\/jpeg","tmp_name":"C:\\wamp\\tmp\\php2C2E.tmp","error":0,"size":469159}}; var data2 = {"title":"title","content":"bla bla blah"} $.post("process.php", $.extend({}, data1, data2) ,function(xml){ });
Используйте $.extend
:
$.post("process.php", $.extend(true, first, second) ,function(xml){ });