java ajax datatype_AJAX中的dataType(数据格式)-text、json

本文详细介绍了在AJAX中如何处理TEXT和JSON数据格式。通过封装成类,简化了数据库查询并转换数据的过程。对于TEXT,数据转换为字符串并用特定分隔符拼接;对于JSON,使用关联数组并利用json_encode()函数将其转化为JSON格式。
摘要由CSDN通过智能技术生成

因为经常使用数据格式,所以将它封装成类,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); //截取字符串:最后的拼接符不显示

*/

?>

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

f517c3007de6ce13088690efbbc6160c.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);

}

cfeb42b870b8387ccab597d5a9a7b191.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的区别(这个就是个数组,还是个关联的数组)

2b4df8b03221ec6d13f998de63da345e.png

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

var str = "";

for( var k in data)

{

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

}

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

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

8b40237ba2e3c5486d16b374c80b698e.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的服务

本课程详细讲解了以下内容:    1.jsp环境搭建及入门、虚拟路径和虚拟主机、JSP执行流程    2.使用Eclipse快速开发JSP、编码问题、JSP页面元素以及request对象、使用request对象实现注册示例    3.请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题     4.session与cookie问题及application、cookie补充说明及四种范围对象作用域     5.JDBC原理及使用Statement访问数据库、使用JDBC切换数据库以及PreparedStatement的使用、Statement与PreparedStatement的区别     6.JDBC调用存储过程和存储函数、JDBC处理大文本CLOB及二进制BLOB类型数据     7.JSP访问数据库、JavaBean(封装数据和封装业务逻辑)     8.MVC模式与Servlet执行流程、Servlet25与Servlet30的使用、ServletAPI详解与源码分析     9.MVC案例、三层架构详解、乱码问题以及三层代码流程解析、完善Service和Dao、完善View、优化用户体验、优化三层(加入接口和DBUtil)    1 0.Web调试及bug修复、分页SQL(Oracle、MySQL、SQLSERVER)     11.分页业务逻辑层和数据访问层Service、Dao、分页表示层Jsp、Servlet     12.文件上传及注意问题、控制文件上传类型和大小、下载、各浏览器下载乱码问题     13.EL表达式语法、点操作符和括号操作符、EL运算、隐式对象、JSTL基础及set、out、remove     14.过滤器、过滤器通配符、过滤器链、监听器     15.session绑定解绑、钝化活化     16.以及Ajax的各种应用     17. Idea环境下的Java Web开发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值