使用Ajax与PHP交互实现数据库查询

需积分: 0 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协作,动态获取和更新数据库内容,而无需刷新整个页面,提高了用户体验。同时,也展示了如何在客户端和服务器端处理数据,以及对返回文本进行格式化的技巧。