Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将对象作为POST变量从jquery传递到php_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 将对象作为POST变量从jquery传递到php

Javascript 将对象作为POST变量从jquery传递到php,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我需要将两个对象和一个字符串作为post参数传递给php 我的代码现在是这样的: var obj1 = {'a':'b', 'c':'d'}; var obj2 = {'e':'f', 'g':'h'}; var url = 'hello'; dataParams = { object1: obj1, object2: obj2, url: url } $.ajax({ url: '/sample.php', dataType: 'json',

我需要将两个对象和一个字符串作为post参数传递给php

我的代码现在是这样的:

var obj1 = {'a':'b', 'c':'d'};

var obj2 = {'e':'f', 'g':'h'};

var url = 'hello';

dataParams = { 
    object1: obj1,
    object2: obj2,
    url: url
}
$.ajax({
    url: '/sample.php',
    dataType: 'json',
    method: 'POST',
    data: dataParams
});
在sample.php中

echo $_POST['url'] gives hello
echo $_POST['object1'] or json_decode($_POST['object1']) gives null.
echo $_POST['object2'] or json_decode($_POST['object2']) gives null.
代码有什么问题?

您正在使用

method = 'POST'
何时应该:

type: 'POST'
另外,echo$_POST['object1']将返回'Array'!如果要查看值,请使用print\u r($\u POST['object1']),好吗? ;)

您正在使用

method = 'POST'
何时应该:

type: 'POST'
另外,echo$_POST['object1']将返回'Array'!如果要查看值,请使用print\u r($\u POST['object1']),好吗?
;)

感谢您的快速回复

在我的代码中,我从DOM输入字段填充obj1和obj2。我已经将它们初始化为数组而不是对象

obj1 = [] instead of obj1 ={}
在做了那个改变之后,它工作得很好


谢谢你的快速回复

在我的代码中,我从DOM输入字段填充obj1和obj2。我已经将它们初始化为数组而不是对象

obj1 = [] instead of obj1 ={}
在做了那个改变之后,它工作得很好



感谢

类似的帖子,可能会对您的帖子有所帮助。有一个简单的错误,在object1和object2之后,您没有关闭。尝试打印$\u POST并分析输出您在php sacript中尝试了
var\u dump($\u POST)
以查看json向您发送了什么?您介意发布整个代码吗?因为我在您作为“数据”传递的对象中看不到“url”。@gafreax它只有url属性类似的帖子,可能有助于您发布帖子。有一个简单的错误,在object1和object2之后,您没有关闭“url”。尝试打印$\u POST并分析输出您在php sacript中尝试了
var\u dump($\u POST)
以查看json向您发送了什么?您介意发布整个代码吗?因为我在您作为“数据”传递的对象中看不到“url”。@gafreax它只有url属性ybtw,为什么要使用数据类型?你打算返回一个json对象吗?我以后必须返回一个json对象。但是,即使删除了dataType属性,它也不起作用。请尝试在dataParams上运行JSON.stringify,或者将object1和object2括在“”中,这样应该可以做到!顺便说一句:echo$\u POST['object1']将返回'Array'!如果您想查看这些值,您需要执行print\r($\u POST['object1']),好吗?我刚刚测试了代码,效果很好!这就是我所做的:
testvar obj1={'a':'b','c':'d'};var obj2={'e':'f','g':'h'};var url='hello';dataParams={object1:obj1,object2:obj2,url:url}$.ajax({url:'http://localhost/test.php,数据类型:'text',类型:'POST',数据:dataParams,成功:函数(数据){alert(data);}});
BTW,为什么要使用数据类型?你打算返回一个json对象吗?我以后必须返回一个json对象。但是,即使删除了dataType属性,它也不起作用。请尝试在dataParams上运行JSON.stringify,或者将object1和object2括在“”中,这样应该可以做到!顺便说一句:echo$\u POST['object1']将返回'Array'!如果您想查看这些值,您需要执行print\r($\u POST['object1']),好吗?我刚刚测试了代码,效果很好!这就是我所做的:
testvar obj1={'a':'b','c':'d'};var obj2={'e':'f','g':'h'};var url='hello';dataParams={object1:obj1,object2:obj2,url:url}$.ajax({url:'http://localhost/test.php,数据类型:'text',类型:'POST',数据:dataParams,成功:函数(数据){alert(data);}});