Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.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
使用jquery调用ajax后在PHP中清空$\u POST_Php_Jquery_Ajax - Fatal编程技术网

使用jquery调用ajax后在PHP中清空$\u POST

使用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

我有一个javascript函数,可以从一些输入字段和复选框中收集数据。
我想将数据发送到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时直接发送它们即可