Ajax将Json传递给PHP

Bre*_*ent 0 php ajax jquery json

我看了几篇文章,但似乎无法解决我做错了什么,我需要使用JSON进入数据库,但它说我发布的城市没有通过?

使用Javascript

     console.log(jsonData);
      $.ajax({
          url: "ajax.php",
          type: "post",
          data: jsonData,
      datatype: 'json',
          success: function(jsonData){  

               $('#result').html(jsonData);

          },
          error:function(){
              alert('ajax failed');    
          }   
        }); 
}
Run Code Online (Sandbox Code Playgroud)

Ajax.php

$obj = json_decode($_POST['cities']);

print_r($obj);
Run Code Online (Sandbox Code Playgroud)

错误:

注意:未定义的索引:第3行的ajax.php中的城市

Json的控制台日志

{ "currentCity": "埃克塞特", "城市":[{ "Name": "埃克塞特", "计划书":[{ "报价": "测试", "价格": "11", "注意事项":" 100" , "城市": "埃克塞特"}]}]}

Ohg*_*why 6

首先,datatype需要dataType.请注意,这遵循较低的驼峰案例命名法.

其次,$_POST['cities'];将无法工作,因为它是JSON对象中的键,而不是帖子标识符的键.你需要做的就是传递它data: {'json' : jsonData},然后你可以做:

 $obj = json_decode($_POST['json']);
 print_r($obj['cities']);
Run Code Online (Sandbox Code Playgroud)

编辑

所以你的ajax调用如下所示:

$.ajax({
     url: "ajax.php",
     type: "post",
     data: {
         "json" : jsonData
     },
     dataType: 'json',
     success: function(jsonData){  
          $('#result').html(jsonData);
     },
     error:function(){
         alert('ajax failed');    
     }   
}); 
Run Code Online (Sandbox Code Playgroud)