json提交给服务器我们在提交之前需要通过js的相关函数来把数据转换成json格式的数据再进行post或get了,下面来看看。
 

大概需求就是前端要把数据组装成json,传给后端。首先,在客户端,通过javascript脚本将页面表单数据封装成json格式.getjsondata()函数完成了这一功能.然后我们通过$.ajax()方法将数据发送到服务端,其中用到了json.stringify()方法,它可以将客户端发送地数据转换成json对象

直接上代码:

 代码如下 复制代码

$.ajax({  
        type: "POST",  
        url: "RequestData.ashx",  
        contentType: "application/json; charset=utf-8",  
        data: JSON.stringify(GetJsonData()),  
        dataType: "json",  
        success: function (message) {  
            if (message > 0) {  
                alert("请求已提交!我们会尽快与您取得联系");  
            }  
        },  
        error: function (message) {  
            $("#request-process-patent").html("提交数据失败!");  
        }  
    });  
});  
  
function GetJsonData() {  
    var json = {  
        "classid": 2,  
        "name": $("#tb_name").val(),  
        "zlclass": "测试类型1,测试类型2,测试类型3",  
        "pname": $("#tb_contact_people").val(),  
        "tel": $("#tb_contact_phone").val()  
    };  
    return json;

上面的例子是在博客园找到的 ,但这是最简单的一种json格式,我们在做项目中肯定会遇到json里有数组,然后我改造了以下,也直接上代码吧,

 代码如下 复制代码

$.ajax({  
       type: "POST",  
       url: "RequestData.do",  
       contentType: "application/json; charset=utf-8",  
       data: JSON.stringify(GetJsonData()),  
       dataType: "json",  
       success: function (message) {  
           if (message > 0) {  
            $(".posting").remove();  
               $(".main_con").append("<p style='text-align:center; padding:20px 0; background:#03f430;color:#fff;'>提交数据成功!</p>");  
           }  
       },  
       error: function (message) {  
        $(".posting").remove();  
        $(".main_con").append("<p style='text-align:center; padding:20px 0;background:#f4031a;color:#fff;'>提交数据失败!</p>");  
       }  
   });  
   function GetJsonData() {  
    var teamdata=[];  
    for(var i=0; i<$(".onjob-lsit tr").length; i++){  
        var teamobj ={  
            "teamRelname":$(".teamRelname").eq(i).text(),   
            "teamTel":$(".teamTel").eq(i).text(),   
            "teamStartDate":$(".teamStartDate").eq(i).text(),   
            "teamEndtDate":$(".teamEndtDate").eq(i).text(),   
            "teamRemark":$(".teamRemark").eq(i).text()  
        };  
        teamdata.push(teamobj);  
    }  
      
    var json = {  
        "onteamName": $(".onteamName").val(),  
        "forteamName": $(".forteamName").val(),  
        "teamList":teamdata  
          
    };  
    return json;  
    }

php如何接收post过来的JSON数据

POST过来的JSON数据,一般直接用接受就好
打个比方

JavaScript code

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var allUnivList = [{
        "id": 1,
        "univs": [{
            "id": 1001,
            "name""清华大学"
        },
        {
            "id": 1002,
            "name""北京大学"
        }],
        "country_id": 0,
        "name""北京"
    }]
 
//比如你传递的是上面这个JSON格式,在PHP端,举个用JQ提交的例子:
$.ajax({
                url: "test.php",
                type: "post",
                data: { allcity: allUnivList},
                success: function (data) {                  
                      alert(data);
                },
                error: function () {
                    alert("系统异常!");
                }
            });

以上是JS部分,以下是PHP部分:

PHP code

 

?

1
2
3
//一般直接使用
$allcity=$_POST['allcity'];
echo $allcity['name'];

这样alert出来的结果应该是北京

  mysql_set_charset('utf8');
$datas=$_GET['getDatas'];
//print_r($datas);
$user = json_decode($datas,true);
   // echo var_dump($user);
   print_r($user); 

转载网站:

http://www.111cn.net/wy/jquery/112697.htm

http://bbs.csdn.net/topics/390643303

转载 ----HTML5 ---js实现json方式提交数据到服务端的更多相关文章

  1. JQuery以JSON方式提交数据到服务端

    JQuery将Ajax数据请求进行了封装,从而使得该操作实现起来容易许多.以往我们要写很多的代码来实现该功能,现在只需要调用$.ajax()方法,并指明请求的方式.地址.数据类型,以及回调方法等.下面 ...

  2. ajax post 提交数据到服务端时中文乱码解决方法

    get 方式提交数据到服务端不会乱码,但对数据量有限制;post 可以提交大数据量,但中文会发生乱码,解决方法: 在JS上用使用 encodeURIComponent 对字符编码处理: student ...

  3. json提交数据到服务端

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Courier New"; color: #393939; backgr ...

  4. Http协议:客户端提交数据给服务端和从服务端获得数据,像WebView也是向百度的服务端发出一条Http请求,服务端返回HTML页面,客户端(浏览器)解析后展示出页面

    提交数据和获得数据的方式有很多,这里介绍一种,使用HttpURLConnection来向服务器提交数据或者获得数据. 获得数据: //传入网址,获得请求网页数据(XML文件数据或JSON文件数据) p ...

  5. js 模拟ajax方式提交数据

    html页面 <script>function LocaluploadCallback(msg) {     document.getElementById("f_localup ...

  6. js以json形式提交数据,后台接受

    $("#savename").click(function(){ var fananname=$("#editname").val(); var jsonLis ...

  7. 苹果微信浏览器不能post方式提交数据问题

    form表单中采用post方式提交数据时,在苹果的微信浏览器中无法传递,安卓的可以 如图: 在controller中获取该数据为 null 将表单的提交方式修改为get就能够获取到 现在采用Ajax方 ...

  8. 使用jquery.form.js的ajaxsubmit方法提交数据的Bug

    周五同事遇到一个很奇怪的问题,调到下班,虽然问题解决了,但是不知道问题的具体原因,回来翻了翻代码,才发现症结所在,下面就分享出来,供遇到同样问题的同行们参考: 先把问题描述一下,做的功能是使用ajax ...

  9. Android 采用post方式提交数据到服务器

    接着上篇<Android 采用get方式提交数据到服务器>,本文来实现采用post方式提交数据到服务器 首先对比一下get方式和post方式: 修改布局: <LinearLayout ...

随机推荐

  1. 单片网络接口芯片W5100的原理与应用

    随着计算机网络技术的发展,作为全球最大计算机网络——I n t e r ac t已成为当今信息社会重要的基础信息设施.在工业测控.智能仪器.智能家庭等领域,大量应用嵌入式设备接人 I n t e r ...

  2. C++设计模式-Flyweight享元模式

    Flyweight享元模式 作用:运用共享技术有效地支持大量细粒度的对象. 内部状态intrinsic和外部状态extrinsic: 1)Flyweight模式中,最重要的是将对象分解成intrins ...

  3. sp,文件以及SDcard存储

    XML: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    androi ...

  4. linux出现user account has expired解决方案

    SUSE Linux 用户user1登陆不了,确认密码没错,使用root用户登陆,su - user1 提示密码不对,passwd user1提示帐户过期user account hasexpired ...

  5. AX7: Install a deployable package

    Table of Contents Introduction Key concepts Collect topology configuration data Generate a runbook f ...

  6. java.lang.IllegalArgumentException: template not initialized; call afterPropertiesSet() before using

    在使用spring-data-redis时使用junit测试报错: java.lang.IllegalArgumentException: template not initialized; call ...

  7. 【SSM 4】Mybatis逆向生成工具

    在上一篇博客中说到,Mybatis是灵活的SQL语句应用,不想Hibernate一样有其封装好的方法,那么,当我们用Mybatis的时候(Hibernate),我们都需要编写其实体类,和配置文件.本篇 ...

  8. Linux学习笔记2_mysql安装

    查看文件内容的命令有很多:cat, tac, more, less, head, tail, nl. cat由第一行开始显示档案内容:tac从最后一行开始显示,可以看出tac是cat的倒着写:more ...

  9. 安卓工程 Installation error:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED的解决办法

    解决办法:把包名首字母改成小写就好了.

  10. 第一天 :学习node.js

    ① node.js环境配置 我学过的语言最简单的一门 直接百度就可以配置 ② 每个入门 的程序都是从helloworld开始 代码如下 : var http=require('http'); http ...