Ajax发送json数据,后台用php处理。

php中文网
发布: 2016-06-06 20:07:45
原创
1802人浏览过

前端:

<body>
    <button id="btn">提交</button>
    <div id="container"></div>
    <script type="text/javascript">
            var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                contentType:"application/json;charset=utf-8",
                data: JSON.stringify(json),
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });
            
    </script>
</body>
登录后复制
登录后复制

后端:

立即学习PHP免费学习笔记(深入)”;

<?php
header("Content-type:text/html;charset=UTF-8");
$data=json_decode($_POST['data']);
echo($data);
?>
登录后复制
登录后复制

结果test.html没有看到返回值,报错。对于php后台接收json数据处于刚入门阶段,求指点
Ajax发送json数据,后台用php处理。

回复内容:

前端:

<body>
    <button id="btn">提交</button>
    <div id="container"></div>
    <script type="text/javascript">
            var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                contentType:"application/json;charset=utf-8",
                data: JSON.stringify(json),
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });
            
    </script>
</body>
登录后复制
登录后复制

后端:

立即学习PHP免费学习笔记(深入)”;

<?php
header("Content-type:text/html;charset=UTF-8");
$data=json_decode($_POST['data']);
echo($data);
?>
登录后复制
登录后复制

结果test.html没有看到返回值,报错。对于php后台接收json数据处于刚入门阶段,求指点
Ajax发送json数据,后台用php处理。

A) 已你的前端为准,php端需要这样获取

$json = file_get_contents('php://input');
登录后复制

因为是发送的是json数据,所以并不存在$_POST['data']这个东西。
B) 已你的后端为准,前端需要这样发送

            $.ajax({
                type: "POST",
                url:"form.php",    
                //contentType:"application/json;charset=utf-8",
                data: {data: JSON.stringify(json)}, //使用普通的键值方式
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
登录后复制

前端传的时候直接传json对象不用JSON.stringify处理
后端 $_POST['zlclass']; 接收就行

照你现在这样传的话估计得php://input中去取

var json = {
                "classid": 1,
                "zlclass": "测试"
            };
            $("#btn").click(function() {
                $.ajax({
                type: "POST",
                url:"form.php",    
                dataType:'JSON',
                data: json,
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {
                    $("#container").html(data);
                }
            });
            });
登录后复制

后台直接$data=$_POST['classid'];

data:{
    data:JSON.stringify(json)
}
登录后复制

var_dump($_POST);看看里面有什么。。

我按照您的意思后台用:

$data = json_decode($_POST['data'],true);
   echo($_POST['data']);
登录后复制

接收到了数据:Ajax发送json数据,后台用php处理。

前端代码:

 <script>
   var json = {
                "classid": 1,
                "zlclass": "测试"
            };
      $.ajax({
                type: "POST",
                url:"http://localhost/ajax/json/test.php",                
                data: {data: JSON.stringify(json)}, 
                error: function(request) {
                    alert("Connection error");
                },
                success: function(data) {                                       
                    $("#container").append("<h2>传数据成功</h2>");
                    $("#container").append("<h2>"+"classid:"+data['classid']+",zlclass:"+data['zlclass']+"</h2>");
                }
            })
       </script>
登录后复制

不知道这样能解决您的问题吗?

ajax上传的不是json,data是json转化成的表单数据,直接var_dump($_POST),不要用json处理,json是做返回值用的。

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号