使用jquery调用ajax后在PHP中清空$\u POST
我有一个javascript函数,可以从一些输入字段和复选框中收集数据。使用jquery调用ajax后在PHP中清空$\u POST,php,jquery,ajax,Php,Jquery,Ajax,我有一个javascript函数,可以从一些输入字段和复选框中收集数据。 我想将数据发送到PHP文件,然后从数据库返回一些信息。 但是我在获取PHP中的POST数据时遇到了一个问题,所以这里我只关注这个问题,不会处理任何数据库 HTML表单中收集的数据以Javascript对象的形式返回,我使用Json.stringify(data)将其转换为Json,得到: {“motscle”:[“”,”“categories”:[1,2,3],“prix”:[{“min”:0,“max”:50},{“mi
我想将数据发送到PHP文件,然后从数据库返回一些信息。
但是我在获取PHP中的POST数据时遇到了一个问题,所以这里我只关注这个问题,不会处理任何数据库 HTML表单中收集的数据以Javascript对象的形式返回,我使用
Json.stringify(data)
将其转换为Json,得到:
{“motscle”:[“”,”“categories”:[1,2,3],“prix”:[{“min”:0,“max”:50},{“min”:50,“max”:100},{“min”:100,“max”:200},{“min”:200,“max”:500},{“min”:500,“max”:1000},{“min”:1000,“max”:2000}],“dimensions”:{“longueur”:“largeur”:“hauteur”:}
您可以对其进行测试,以查看扩展的表单以及它是否是有效的JSON。所以,我想问题不在这里
然后我有一个类似于测试目的的ajax调用(var theJSON
包含上述JSON字符串):
我的测试PHP文件post.PHP
如下所示:
<?php
header('Content-Type: application/json; charset=utf-8');
echo json_encode($_POST);
?>
但是,正如您所看到的,我还有一个空数组[]
。我希望得到PHP应该发给我的$u POST内容
我不知道我错在哪里。为什么不在
$\u POST
中获取数据?ajax请求的默认类型是get,或者更改ajax
$.ajax({
url: 'post.php',
type : 'POST',
data: theJSON ,
dataType: 'json',
error: function(){
console.log("Error in ajax request");
},
success: function(data)
{
console.log("Success of ajax request");
console.log(data);
}
});
或者检查一下
echo json_encode($_GET);
ajax请求的默认类型是GET,或者更改ajax
$.ajax({
url: 'post.php',
type : 'POST',
data: theJSON ,
dataType: 'json',
error: function(){
console.log("Error in ajax request");
},
success: function(data)
{
console.log("Success of ajax request");
console.log(data);
}
});
或者检查一下
echo json_encode($_GET);
ajax请求的默认类型是GET,或者更改ajax
$.ajax({
url: 'post.php',
type : 'POST',
data: theJSON ,
dataType: 'json',
error: function(){
console.log("Error in ajax request");
},
success: function(data)
{
console.log("Success of ajax request");
console.log(data);
}
});
或者检查一下
echo json_encode($_GET);
ajax请求的默认类型是GET,或者更改ajax
$.ajax({
url: 'post.php',
type : 'POST',
data: theJSON ,
dataType: 'json',
error: function(){
console.log("Error in ajax request");
},
success: function(data)
{
console.log("Success of ajax request");
console.log(data);
}
});
或者检查一下
echo json_encode($_GET);
打开浏览器的开发工具并在控制台中查看请求/响应。您应该看到发送的数据和返回的数据。这是您进行故障排除的起点。Echo
$\u获取
,然后查看它是否为空。如果正在填充GET,请在ajax调用中添加属性type:“POST”
。@Rickkwa这就是问题所在,请打开浏览器的开发工具,并在控制台中查看请求/响应。您应该看到发送的数据和返回的数据。这是您进行故障排除的起点。Echo$\u获取
,然后查看它是否为空。如果正在填充GET,请在ajax调用中添加属性type:“POST”
。@Rickkwa这就是问题所在,请打开浏览器的开发工具,并在控制台中查看请求/响应。您应该看到发送的数据和返回的数据。这是您进行故障排除的起点。Echo$\u获取
,然后查看它是否为空。如果正在填充GET,请在ajax调用中添加属性type:“POST”
。@Rickkwa这就是问题所在,请打开浏览器的开发工具,并在控制台中查看请求/响应。您应该看到发送的数据和返回的数据。这是您进行故障排除的起点。Echo$\u获取
,然后查看它是否为空。如果正在填充GET,请在ajax调用中添加属性type:“POST”
。@Rickkwa这就是问题所在,谢谢你解决了我的问题。我还有另一个问题。事实上,我必须将JSON作为对象发送,而不是作为JSON的字符串表示。这是因为我认为Jquery处理字符串化。是的,Jquery接受对象和数组,并为您进行字符串化,但也应该接受字符串,但没有必要对对象进行字符串化,只需在使用jQueryTank解决我的问题时直接发送它们。我还有另一个问题。事实上,我必须将JSON作为对象发送,而不是作为JSON的字符串表示。这是因为我认为Jquery处理字符串化。是的,Jquery接受对象和数组,并为您进行字符串化,但也应该接受字符串,但没有必要对对象进行字符串化,只需在使用jQueryTank解决我的问题时直接发送它们。我还有另一个问题。事实上,我必须将JSON作为对象发送,而不是作为JSON的字符串表示。这是因为我认为Jquery处理字符串化。是的,Jquery接受对象和数组,并为您进行字符串化,但也应该接受字符串,但没有必要对对象进行字符串化,只需在使用jQueryTank解决我的问题时直接发送它们。我还有另一个问题。事实上,我必须将JSON作为对象发送,而不是作为JSON的字符串表示。这是因为我认为Jquery处理字符串化。是的,Jquery接受对象和数组,并为您将其字符串化,但也应该接受字符串,但不需要字符串化对象,只需在使用Jquery时直接发送它们即可