使用Ajax与PHP交互实现数据库查询
需积分: 0 150 浏览量
更新于2024-09-11
收藏 42KB DOC 举报
"使用AJAX与PHP交互,实现动态数据加载"
在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种技术,它允许网页在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。这里,我们看到一个具体的实例,展示了如何使用AJAX与PHP结合,以获取和展示数据库中的数据。
首先,PHP脚本是服务器端的处理程序,它负责连接到数据库、执行SQL查询并处理结果。在这个例子中,PHP使用`mysql_connect()`函数连接到localhost上的数据库,用户名为'root',密码为空。接着,通过`$_GET['id']`获取URL参数id,这个id通常来自用户的输入,用于指定要查询的特定记录。然后,`mysql_select_db()`函数选择名为'cms'的数据库,接着构建一个SQL查询语句,使用`sprintf()`函数格式化字符串,以安全地插入$id$值,避免SQL注入攻击。查询语句是根据文章ID选取`articles`表中的所有列。执行查询并用`mysql_query()`存储结果,如果出错,`die(mysql_error())`会输出错误信息。`mysql_fetch_assoc()`用于获取查询结果的每一行作为关联数组,`mysql_num_rows()`计算结果集中的行数。最后,定义了一个名为`conv()`的函数,该函数用于对返回的文本进行处理,包括HTML转义和换行符转换,以便在网页上正确显示。
在客户端,JavaScript部分使用XMLHttpRequest对象来发起异步请求。首先,声明全局变量`xmlhttpObj`以存储创建的XMLHttpRequest对象。`CreateXMLHttpReq()`函数用于创建这个对象,无论是IE还是其他浏览器。当用户在文本框中输入id并点击按钮时,`DoRequest()`函数被调用,它设置请求的URL(包含id参数),HTTP方法(GET)以及处理响应的回调函数`.onreadystatechange`。当服务器响应准备就绪时,`onreadystatechange`事件触发,检查`readyState`属性是否为4(表示请求已完成)且`status`属性是否为200(表示请求成功)。如果满足这些条件,`responseText`属性包含服务器返回的数据,可以被解析并显示在页面的指定位置。
需要注意的是,这个示例使用了过时的MySQL扩展,现在推荐使用mysqli或PDO_MySQL,它们提供了更好的错误处理和更安全的预处理语句。此外,由于跨源资源共享(CORS)限制,如果请求的URL与当前页面不同源,可能需要在服务器端设置合适的CORS头。
这个实例演示了AJAX如何与PHP协作,动态获取和更新数据库内容,而无需刷新整个页面,提高了用户体验。同时,也展示了如何在客户端和服务器端处理数据,以及对返回文本进行格式化的技巧。
2008-01-21 上传
2012-07-13 上传
189 浏览量
2023-04-11 上传
2023-04-29 上传
2023-05-27 上传
2023-06-03 上传
2023-05-01 上传
2023-05-31 上传
u011496243
- 粉丝: 0
- 资源: 1
最新资源
- 安娜:Alexa供电的互动灯-项目开发
- react-chat-master:React聊天
- movie_app:使用React JS制作的电影应用
- licensing:Volcanic Pixels 产品的许可服务器
- Java SSM基于HTML的“守护萌宠”网站【优质毕业设计、课程设计项目分享】
- imiAssignment
- 在线学习小程序后端PHP+Laravel+Mysql+Echarts+Wechat+LayUI.zip
- esp8266ArduinoWebserver:基于esp8266arduino的简易web服务器
- python-utils-ak:小型但有用的个人python utils
- JNBT-开源
- erlang-expression-parser:Erlang 应用程序,它解析文本并处理它们(如果它们是数学表达式)
- ember-env-helper:余烬环境助手
- vuexy-full-version6.2.zip
- 原生php+mysql的简单博客。纯粹学习练手的东西.zip
- 伺服时钟数字显示-项目开发
- 广东工业大学EDA实验报告全部