ajax 中json格式数据格式,AJAX中的dataType(数据格式)-text、json

因为经常使用数据格式,所以将它封装成类,J这样就不会用到时就写了,直接调用写好的类就可以了

(1)dataType数据格式为:TEXT格式的数据是字符串的数据,在“ajax对数据进行删除和查看”的那篇博客中说过,这里在说下

结果不会每个传输的都是字符串,有时是二维数组,这样就要转换为字符串格式了

class DBDA

{

public $host="localhost"; //数据库连接

public $uid="root"; //用户

public $password="123"; //用户密码

public $dbname="test2"; //用到的数据库名字

//返回字符串的方法

public function StrQuery($sql,$type=1)

{

$db = new MySQLi($this->host,$this->uid,$this->password,$this->dbname); //造一个新对象

$r = $db->query($sql); //sql语句

if($type==1) //判断语句

{

$attr = $r->fetch_all();

$str = "";

foreach($attr as $v)

{

$str .= implode("^",$v)."|"; //拼接数组为字符串

}

return substr($str,0,strlen($str)-1); //截取字符串:最后的拼接符不显示

}

else

{

return $r;

}

}

}

这就把转换字符串封装成了一个类:运用一下

$.ajax({

url:"xianshicl.php",//处理页面中进行查数据库

dataType:"TEXT", //用的text的数据类型

success: function(data){

//这里是处理页面执行结束后在执行的语句

}

})

处理页面的查数据库

include("DBDA.class.php"); //调用封装好的类文件

$db = new DBDA(); //造新对象

$sql = "select * from fruit"; //查数据库的内容语句

echo $db->StrQuery($sql); //1.引用封装好的类中的转换字符串的方法

/*//2.不想调用,可以自己写,不过就是麻烦点,因为这样会每次用到时都要写

$attr = $db->Query($sql);

$str = "";

foreach($attr as $v)

{

$str .= implode("^",$v)."|"; //拼接数组为字符串

}

echo substr($str,0,strlen($str)-1); //截取字符串:最后的拼接符不显示

*/

?>

这里是处理页面执行语句的效果:

4680a577683812703f7b15db19aac41c.png

然后在ajax中进行拆分后就可以了:

success: function(data){

var hang = data.split("|"); //拆分字符“|”串:显示行

var str = "";

for(var i=0;i

{

var lie = hang[i].split("^"); //拆分字符串“^”:显示列

str += "

"+lie[0]+""+lie[1]+""+lie[2]+""+lie[3]+""+lie[4]+""; //直接找索引号

}

$("#bg").html(str);

}

390c3f52d2c3cccacc05fada4ad4609e.png

(2)dataType数据格式为:JSON比较像关联数组:所以在引用时,数组是要关联数组的,不能是索引数组

我们也把这个封装成一个类,既然是关联数组,在遍历时的函数值应该是fetch_all(MYSQLI_ASSOC)

class DBDA

{

public $host="localhost"; //数据库连接

public $uid="root"; //用户

public $password="123"; //用户密码

public $dbname="test2"; //用到的数据库名字

//返回JSON

function JSONQuery($sql,$type=1)

{

$db = new MySQLi($this->host,$this->uid,$this->password,$this->dbname);

$r = $db->query($sql);

//和字符串不同的地方

if($type==1)

{

//json是关联数组:fetch_all(MYSQLI_ASSOC)

return json_encode($r->fetch_all(MYSQLI_ASSOC)); //转化成json:json_encode()必须是utf-8的服务

}

else

{

return $r;

}

}

}

这就把json封装成了一个类:运用一下

$(document).ready(function(e) {

$.ajax({

url: "scl.php", //处理页面

dataType:"json", //数据类型是JSON

success: function(data){

//处理页面结束后执行的语句写这里

}

})

});

处理页面的语句:

include("DBDA.class.php"); //调用封装的类

$db = new DBDA();

$sql = "select * from fruit";

echo $db->JSONQuery($sql); //这里就是引用的封装好的JSON方法

执行下,看下这个方法和TEXT的区别(这个就是个数组,还是个关联的数组)

8ff24e211a8051643047b3c526766226.png

处理页面执行成功后执行下面语句

var str = "";

for( var k in data)

{

str +=""+data[k].Name+""; //找到k的Code,这里的Code要和数据库中的列名一致

}

$("#fruit").html(str);

下面就把整体的效果看下,上面做了个下拉列表,找的是数据库中水果表的名称,如下:

fd1883a03bf938594aaf8dad9f61473c.png

TEXT是直接遍历索引号,而JSON是列名

str += "

"+lie[0]+""+lie[1]+""+lie[2]+""+lie[3]+""+lie[4]+""; //直接找索引号

str +=""+data[k].Name+""; //找到k的Code,这里的Code要和数据库中的列名一致

需要注意,JSON是关联数组,要用MYSQLI_ASSOC这个值,

转换成JSON的方法是:json_encode()

使用这个方法服务必须是utf-8的服务

AJAX中的dataType

参考ajax的api文档 dataType的类型:String ajax中的dataType的属性: text:返回纯文本字符串 json:返回json数据 jsonp:jsonp格式(我没用过) h ...

jquery Ajax中的dataType简析

jquery中的ajax有好几种运用方式,但是基本上都是使用的$.ajax()方法,很多人经常会使用它来从后台获取json格式的数据,但是经常发现返回的json字符串并不能自动的转换成js里的json ...

jQuery ajax中的dataType——JSON和JSONP

引用:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html [原创]说说JSON和JSONP,也许你会豁 ...

Jquery发送ajax请求以及datatype参数为text/JSON方式

Jquery发送ajax请求以及datatype参数为text/JSON方式 1.方式一:datatype:'text' 2.方式二:datatype:'JSON' 3.使用gson-1.5.jar包 ...

AJAX 中JSON 和JSONP 的区别 以及请求原理

AJAX 跨域请求 - JSONP获取JSON数据 博客分类: Javascript /Jquery / Bootstrap / Web   Asynchronous JavaScript and X ...

ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习

网页之间传输的三种方式:TEXT.JSON.XML. 本章将讲解带有TEXT形势的ajax网页传输 第一:body部分代码

ajax中TEXT讲解并且带有删除功能的表格&lt ...

$.ajax()中dataType

$.ajax()中dataType的默认值为TEXT,如果没有指明json,而返回来的数据又就是json格式,则无法显示.!!

ajax中的contendType和dataType知识点梳理

在ajax中有2个参数比较重要,之前一直没有搞清楚,下面我们开始梳理一下 1.contentType字段:这个字段的意思,ajax发送给后端的数据是什么类型 如果在ajax中不指定这个属性,则默认是u ...

ajax中url赋json格式的值时发生中文乱码的相关问题

具体流程:转入到jsp界面时会加载ajax,ajax转到url时传带hide在jsp界面的值titleString,其来源见下面的代码. String title=new String("\ ...

随机推荐

最小生成树 prime + 队列优化

存图方式 最小生成树prime+队列优化 优化后时间复杂度是O(m*lgm) m为边数 优化后简直神速,应该说对于绝大多数的题目来说都够用了 具体有多快呢 请参照这篇博客:堆排序 Heapsort / ...

使用Timer和ScheduledThreadPoolExecutor执行定时任务

Java使用Timer和ScheduledThreadPoolExecutor执行定时任务 定时任务是在指定时间执行程序,或周期性执行计划任务.Java中实现定时任务的方法有很多,主要JDK自带的一些 ...

【转】GitHub平台最火Android开源项目整理——2013-08-25 17

http://game.dapps.net/news/developer/9199.html GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮 ...

多线程(七)JDK原生线程池

如同数据库连接一样,线程的创建.切换和销毁同样会耗费大量的系统资源.为了复用创建好的线程,减少频繁创建线程的次数,提高线程利用率可以引用线程池技术.使用线程池的优势有如下几点:        1.保持 ...

Just for 面试

ZOJ题目分类 初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1 ...

九、Python发送QQ邮件(SMTP)

看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA

SQL Server 2008更改数据库保存路径

本文由荒原之梦原创,原文链接:http://zhaokaifeng.com/?p=641 操作环境: WindowsXP 数据库: Microsoft SQL Server 2008 操作步骤: 选中 ...

Koa 框架介绍

Node.js 是一个异步的世界,官方 API 支持的都是 callback 形式的异步编程模型,这 会带来许多问题,例如:callback 嵌套问题 ,异步函数中可能同步调用 callback 返回 ...

Django Rest Framework(认证、权限、限制访问频率)

阅读原文Django Rest Framework(认证.权限.限制访问频率) django_rest_framework doc django_redis cache doc

css学习_css浮动

1.文档流介绍 网页布局的核心就是利用css来摆放盒子, 把盒子摆放在合适的位置. css的定位机制有以下3种(网页布局一般需要3种搭配使用): a.普通流(标准流) b.浮动 1.浮动只有左右. 2 ...

  • 0
    点赞
  • 2
    收藏 更改收藏夹
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值