Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 将JSON对象转换为PHP数组_Javascript_Json_Tostring - Fatal编程技术网

Javascript 将JSON对象转换为PHP数组

Javascript 将JSON对象转换为PHP数组,javascript,json,tostring,Javascript,Json,Tostring,我试图将一个JSON对象转换为PHP脚本的PHP数组,但我一直收到一条错误消息,JSON_decode希望1个参数是字符串,但数组是给定的。我曾尝试序列化、tringify和json_对脚本进行编码,但没有任何效果。我的剧本是 <script> $(document).ready(function(){ $('form[id=ajax]').submit(function(event){ event.preventDefault(); //var form_data =

我试图将一个JSON对象转换为PHP脚本的PHP数组,但我一直收到一条错误消息,JSON_decode希望1个参数是字符串,但数组是给定的。我曾尝试序列化、tringify和json_对脚本进行编码,但没有任何效果。我的剧本是

<script>
$(document).ready(function(){
  $('form[id=ajax]').submit(function(event){
  event.preventDefault();

  //var form_data = $(this).serialize()
  var form_data = { 
      submit: $('input[name=submit]').val(),
      id: $('input[name=id]').val(),
      name: $('input[name=name]').val(),
      price: $('input[name=price]').val(),
      quantity: $('input[name=quantity]').val()
      };

  var json = json_encode(form_data);
    //console.log($json)
  $.ajax({
      url : 'test.php',
      type: 'POST',
      data : json
  });
 });
});
</script>

你做错了,你需要添加JSON.stringify,而不是添加JSON_encode,这是一个php函数,用于将数组编码为JSON字符串;你将JSON对象而不是JSON字符串发送到php脚本

<script>
$(document).ready(function(){
  $('form[id=ajax]').submit(function(event){
  event.preventDefault();

  //var form_data = $(this).serialize()
  var form_data = { 
      submit: $('input[name=submit]').val(),
      id: $('input[name=id]').val(),
      name: $('input[name=name]').val(),
      price: $('input[name=price]').val(),
      quantity: $('input[name=quantity]').val()
      };

  var json = JSON.stringify(form_data);
    //console.log($json)
  $.ajax({
      url : 'test.php',
      type: 'POST',
      data : json
  });
 });
});
</script>

如需进一步阅读

。。。这是javascript而不是PHP…我尝试过使用JSON.stringify,但这是输出的-array0{}检查控制台输出的JSON对象,我可以在控制台中看到字符串,谢谢你的代码。我给了答案一个绿色的记号。您知道如何将其转换为PHP数组吗?您需要在接收PHP文件中的字符串时使用json\u deocde$\u POST,true;这就是我得到的-警告:json_decode期望参数1为字符串,数组在第4行中为空