`

使用Ajax向PHP服务端发送请求并返回JSON数据

    博客分类:
  • PHP
阅读更多

功能说明:前台通过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 class="table table-bordered table-hover table-striped" id="tableList" style="table-layout: fixed;">
		<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;//说明没有受到影响的行
			}
		}
	}	
}

?>

 

分享到:
评论

相关推荐

    jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

    JSON(JavaScript Object ...本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。阅读本文的读者应该具备jQuery、Ajax、PHP相关知识,并能熟练运用。 XHTML &lt;li&gt;&lt;a&gt;张三&lt;/a&gt;&lt;/li&gt; &lt;li

    处理ajax返回带有换行的json数据

    总之,处理Ajax返回带有换行的JSON数据的关键在于确保数据符合JSON规范,无论是服务端处理还是客户端处理。理解JSON的结构和规则,以及JavaScript的字符串处理方法,都是解决此类问题的重要技能。在实际开发中,应该...

    ajax操作json数据

    以jQuery为例,一个简单的AJAX请求JSON数据的代码片段如下: ```javascript $.ajax({ url: 'your-action-url', type: 'GET', // 或者 'POST' dataType: 'json', // 指定期望的响应类型 success: function(data) ...

    jQuery-ajax示例含客户端和服务端源码(可运行

    - **POST**:用于向服务器发送数据,如提交表单,可以传输大量数据。 **3. 数据类型与转换** `dataType`参数指定期望的服务器响应类型,例如: - **'json'**:JSON对象,jQuery会自动将数据转换为JavaScript对象...

    JQ 使用 Ajax 获取PHP生成的JSOP数据

    PHP脚本处理请求,生成JSON数据,并将其作为响应返回。在前端,`success`回调函数接收到这些数据并进行处理,例如显示在页面上或者进行其他操作。 通过这种方式,前端和后端可以有效地协作,提供无缝的用户体验,...

    关于使用json传递数据给客户端的例子

    这段代码向服务端发送GET请求,然后解析返回的JSON数据,并在控制台打印出用户信息。 通过这种方式,服务端可以动态地根据客户端的需求提供数据,客户端则可以灵活地展示和处理这些数据。在实际应用中,还可以结合...

    仿google搜索下拉层框ajax+json+php 实现

    3. **Ajax请求**:使用jQuery的`$.ajax()`或`$.getJSON()`方法发起请求,设置URL指向PHP处理程序,并在成功回调中处理返回的JSON数据。 4. **PHP处理**:在服务器端,PHP接收GET参数,可能需要进行安全检查和清理,...

    jquery和json加PHP实现的二级联动

    6. **JavaScript处理**:在jQuery代码中,我们需要定义一个函数来处理Ajax请求的回调,将返回的JSON数据解析后,动态创建并添加到二级菜单的`&lt;option&gt;`元素中。此外,还需要确保在页面加载时,正确初始化一级菜单的...

    还是GET和POST的服务端和客户端的小案例

    客户端(如JavaScript的Ajax或者Python的requests库)构造一个包含URL和参数的GET请求,服务器接收到请求后,根据URL和参数查询数据库或执行其他逻辑,然后以JSON格式返回数据。JSON(JavaScript Object Notation)...

    php ajax 实现局部刷新简单例子(超简单化)

    如果数据不为空且不匹配预设的正则表达式(用于排除可能的脚本注入),则使用`eval_r`函数(此处的用法并不推荐,因为它可能存在安全风险)来解析JSON数据,并将`data.count`的值赋给ID为`count`的HTML元素。...

    JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码

    在Web开发中,由于浏览器的安全策略,JavaScript通常不能直接进行跨域请求,但jQuery提供了$.ajax和$.getJSON方法,通过JSONP(JSON with Padding)技术来实现在不同源之间获取JSON数据。下面将详细介绍如何使用...

    ibm的ajax教程

    1. **PHP集成**:使用 PHP 作为后端服务端脚本语言,可以方便地处理 Ajax 发送过来的数据,并返回动态生成的 HTML、XML 或 JSON 数据。教程中可能包括了如何设置 PHP 环境、编写处理 Ajax 请求的 PHP 脚本等内容。 ...

    JQuery中使用ajax传输超大数据的解决方法

    当涉及到向服务器发送大量数据时,Ajax请求通常是一个首选的方案,尤其是在需要无刷新更新页面的情况下。然而,当你试图通过Ajax传输大数据时,可能会遇到一些限制,尤其是在使用POST方法时。 问题在于,PHP和某些...

    省市联动php mysql ajax

    4. AJAX请求:发送请求到PHP服务端,获取数据。 5. 数据处理:前端接收到数据后,解析JSON,动态更新市、县(区)的下拉菜单选项。 6. 测试和优化:确保在不同浏览器和设备上功能正常,优化加载速度和用户体验。 在...

    PHP封装返回Ajax字符串和JSON数组的方法

    PHP作为一种服务端编程语言,能够处理数据库查询并返回数据给前端JavaScript使用。本篇将介绍如何在PHP中封装方法,以便返回Ajax所需的字符串和JSON数组数据。 首先,我们需要了解Ajax的基本工作原理。Ajax...

    jquery中ajax处理跨域的三大方式

    使用GETJSON方法时,服务端同样需要处理JSONP格式的请求,确保返回的数据是按照预期格式包装在JSONP回调函数中的。这种方式的优点是代码简洁,易于使用,但是需要服务端支持JSONP。 总的来说,虽然浏览器的同源策略...

Global site tag (gtag.js) - Google Analytics