功能说明:前台通过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;//说明没有受到影响的行 } } } } ?>
相关推荐
JSON(JavaScript Object ...本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。阅读本文的读者应该具备jQuery、Ajax、PHP相关知识,并能熟练运用。 XHTML <li><a>张三</a></li> <li
总之,处理Ajax返回带有换行的JSON数据的关键在于确保数据符合JSON规范,无论是服务端处理还是客户端处理。理解JSON的结构和规则,以及JavaScript的字符串处理方法,都是解决此类问题的重要技能。在实际开发中,应该...
以jQuery为例,一个简单的AJAX请求JSON数据的代码片段如下: ```javascript $.ajax({ url: 'your-action-url', type: 'GET', // 或者 'POST' dataType: 'json', // 指定期望的响应类型 success: function(data) ...
- **POST**:用于向服务器发送数据,如提交表单,可以传输大量数据。 **3. 数据类型与转换** `dataType`参数指定期望的服务器响应类型,例如: - **'json'**:JSON对象,jQuery会自动将数据转换为JavaScript对象...
PHP脚本处理请求,生成JSON数据,并将其作为响应返回。在前端,`success`回调函数接收到这些数据并进行处理,例如显示在页面上或者进行其他操作。 通过这种方式,前端和后端可以有效地协作,提供无缝的用户体验,...
这段代码向服务端发送GET请求,然后解析返回的JSON数据,并在控制台打印出用户信息。 通过这种方式,服务端可以动态地根据客户端的需求提供数据,客户端则可以灵活地展示和处理这些数据。在实际应用中,还可以结合...
3. **Ajax请求**:使用jQuery的`$.ajax()`或`$.getJSON()`方法发起请求,设置URL指向PHP处理程序,并在成功回调中处理返回的JSON数据。 4. **PHP处理**:在服务器端,PHP接收GET参数,可能需要进行安全检查和清理,...
6. **JavaScript处理**:在jQuery代码中,我们需要定义一个函数来处理Ajax请求的回调,将返回的JSON数据解析后,动态创建并添加到二级菜单的`<option>`元素中。此外,还需要确保在页面加载时,正确初始化一级菜单的...
客户端(如JavaScript的Ajax或者Python的requests库)构造一个包含URL和参数的GET请求,服务器接收到请求后,根据URL和参数查询数据库或执行其他逻辑,然后以JSON格式返回数据。JSON(JavaScript Object Notation)...
如果数据不为空且不匹配预设的正则表达式(用于排除可能的脚本注入),则使用`eval_r`函数(此处的用法并不推荐,因为它可能存在安全风险)来解析JSON数据,并将`data.count`的值赋给ID为`count`的HTML元素。...
在Web开发中,由于浏览器的安全策略,JavaScript通常不能直接进行跨域请求,但jQuery提供了$.ajax和$.getJSON方法,通过JSONP(JSON with Padding)技术来实现在不同源之间获取JSON数据。下面将详细介绍如何使用...
1. **PHP集成**:使用 PHP 作为后端服务端脚本语言,可以方便地处理 Ajax 发送过来的数据,并返回动态生成的 HTML、XML 或 JSON 数据。教程中可能包括了如何设置 PHP 环境、编写处理 Ajax 请求的 PHP 脚本等内容。 ...
当涉及到向服务器发送大量数据时,Ajax请求通常是一个首选的方案,尤其是在需要无刷新更新页面的情况下。然而,当你试图通过Ajax传输大数据时,可能会遇到一些限制,尤其是在使用POST方法时。 问题在于,PHP和某些...
4. AJAX请求:发送请求到PHP服务端,获取数据。 5. 数据处理:前端接收到数据后,解析JSON,动态更新市、县(区)的下拉菜单选项。 6. 测试和优化:确保在不同浏览器和设备上功能正常,优化加载速度和用户体验。 在...
PHP作为一种服务端编程语言,能够处理数据库查询并返回数据给前端JavaScript使用。本篇将介绍如何在PHP中封装方法,以便返回Ajax所需的字符串和JSON数组数据。 首先,我们需要了解Ajax的基本工作原理。Ajax...
使用GETJSON方法时,服务端同样需要处理JSONP格式的请求,确保返回的数据是按照预期格式包装在JSONP回调函数中的。这种方式的优点是代码简洁,易于使用,但是需要服务端支持JSONP。 总的来说,虽然浏览器的同源策略...