运用Ajax向PHP服务端发送恳求并回来JSON数据ITeye - 娱乐之横扫全球

运用Ajax向PHP服务端发送恳求并回来JSON数据ITeye

2019-01-11 22:11:33 | 作者: 青亦 | 标签: 数据,回来,阐明 | 浏览: 430

功用阐明:前台经过AJAX想后台发送恳求,后台依据状况将契合条件的一条或多条数据封装进数组中并以JSON的格局回来,前台依据回来数据进行展现。

其他阐明:

比如仍是用的前一篇说到的“省市数据”,建表和数据所用到的SQL现已上传到附件中。

数据库用的mysql,PHP顶用的是mysqli。

 

代码如下:

1、页面展现:index.php

 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 
 html xmlns="http://www.w3.org/1999/xhtml" 
 head 
 meta http-equiv="Content-Type" content="text/html; charset=utf-8" / 
 title AJAX回来JSON格局的数据测试 /title 
 link rel="stylesheet" href="css/bootstrap.css" / 
 link rel="stylesheet" href="css/css.css" / 
 script type="text/javascript" src="js/jquery1.9.0.min.js" /script 
 /head 
 body 
 table id="tableList" 
 tbody 
 tr align="center" 
 td strong 序号 /strong /td 
 td strong 省 /strong /td 
 td strong 市 /strong /td 
 td strong 是否显现 /strong /td 
 td strong 显现次序 /strong /td 
 /tr 
 /tbody 
 /table 
 /body 
 /html 

2、ajax进行恳求及呼应成果处理:

$(function(){
 getInfoForAjax(10);//取id为10的数据
 * 该办法经过ajax的方法,从后台获取json格局的数据进行回来
 * @param id:0-表明取悉数值(这儿作为比如,只取前10条数据) 其他表明取指定id的值
function getInfoForAjax(id){
 $.ajax({
 type:"POST",
 async:false,
 data:{"id":id,"time":new Date().getTime()},
 dataType:"json",
 url:"services.php",
 error:function(XMLHttpRequest, textStatus, errorThrown) {
 alert("加载过错,过错原因:\n"+errorThrown);
 success:function(data){
 var html="";
 for(var i=0;i data.length;i++){
 html+=" tr align=center 
 html+=" td "+data[i].id+" /td //序号
 html+=" td "+data[i].provice+" /td //省份
 html+=" td "+data[i].city+" /td //市
 html+=" td "+data[i].isshow+" /td //是否显现
 html+=" td "+data[i].showorder+" /td //显现次序
 html+=" /tr 
 $("#tableList").append(html); 

3、后台处理:services.php

 ?php
if(isset($_REQUEST[id])){
 $id = $_REQUEST[id];
 if(is_numeric($id)){//是数字
 $id = intval($id);
 $sql = "";
 if($id 0){//阐明取指定的值
 $sql = "select id,provice,city,isshow,showorder from s_cities where id=".$id.";";
 }else{//取悉数值(这儿作为比如,只取10条数据)
 $sql = "select id,provice,city,isshow,showorder from s_cities order by showorder limit 0,10;";
 require_once DB/DBTools.php;
 //实例化目标
 $dbTools = new DBTools();
 $res = $dbTools- execute_dql($sql);
 while($row=$res- fetch_array()){
 $list[]=array("id"= $row[0],"provice"= $row[1],"city"= $row[2],"isshow"= $row[3],"showorder"= $row[4]);
 //$list=array("id"= $row[0],"provice"= $row[1],"city"= $row[2],"isshow"= $row[3],"showorder"= $row[4]);
 echo json_encode($list);
? 

 4、数据库操作类:DBTools.php

 ?php
class DBTools{
 private $mysqli=null;//mysqli目标
 private static $host="127.0.0.1";//主机名
 private static $user="root";//用户名
 private static $pwd="root";//暗码
 private static $db="test";//数据库
 function __construct(){
 $this- mysqli=new mysqli(self::$host,self::$user,self::$pwd,self::$db);
 if($this- mysqli- connect_error){//衔接失利
 die("衔接失利".$this- mysqli- connect_error);
 //设置拜访数据库的字符集
 //确保PHP是以uft8的方法来操作mysql数据库的
 $this- mysqli- query("set names utf8");
 //查询
 public function execute_dql($sql){
 $res = $this- mysqli- query($sql) or die("操作失利,原因".$this- mysqli- error);
 return $res;
 //增加、修正和删去
 public function execute_dml($sql){
 $res = $this- mysqli- query($sql) or die("操作失利,原因".$this- mysqli- error);
 if(!$res){//阐明操作失利
 return 0;
 }else{
 if($this- mysqli- affected_rows 0){
 return 1;//阐明操作成功
 }else{
 return 2;//阐明没有受到影响的行
? 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章