在PHP基础的学习过程中经常会遇到对页面的局部刷新。

比如说,我们在填写用户名的同时,对数据库中的信息进行验证,检查是否充分。

这时就要用到AJAX实现页面的动态加载。

下面例子是简单的PHP与AJAX交互的方法:

PHP+AJAX+MySQL

首先是html部分

ajax.html

<html>
<head>
<!--加载jquery库-->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--加载js-->
<script type="text/javascript" src="ajax_test.js"></script>
</head>
<body>
<input class="input" type="text" name="name" onkeyup="nameCheck(this.value)">
</body>
</html>

然后是AJAX部分:

ajax_test.js

/*
动态检查用户名是否重复
当用户名栏有键盘动作时调用
会通过PHP检查MySQL数据库中用户名是否等于输入
*/
function nameCheck(str) {
//判断输入是否不为空
if (str.length !== 0) {
//不为空则启动AJAX进行局部刷新
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
xmlhttp = new XMLHttpRequest();
} else {
//IE6, IE5 浏览器执行的代码
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//处理函数
xmlhttp.onreadystatechange = function() {
//readyState为4时服务器响应完成
//status=200时交易成功
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//判断PHP返回值
if (xmlhttp.responseText == '1') {
//返回1说明用户名重复,弹出窗口
alert("用户名重复!");
}
}
};
//规定请求的类型、URL 以及是否异步处理请求。
xmlhttp.open("GET", "checkName.php?name=" + str, true);
//发送
xmlhttp.send();
}
}

之后是处理数据库的php部分

checkName.php

<?php
/*
该脚本用于判断数据库中是否存在AJAX传来的值
*/
//从请求URL地址中获取 name参数
$name=$_GET["name"]; //通过mysqli连接数据库
//参数分别为(服务器地址,用户名,密码,数据库名)
$con = new mysqli("localhost","root","","test");
//判断数据库连接是否成功
if ($con ->connect_error) {
//die()函数--->终止脚本并输出信息
die("数据库连接失败:".connect_error);
} //SQL语句
$sql = "SELECT name FROM User WHERE Name = '".$name."'";
//调用mysqli的query()方法查询
$result = $con->query($sql);
//关闭连接
$con->close();
//判断结果并输出num_rows为行数
if ($result->num_rows != 0) {
//如果存在相同信息则输出'1'
echo('1');
}else{
//如果不存在相同信息则输出'0'
echo('0');
} ?>

我在数据库中插入过admin这个用户

所以,结果如下:

最新文章

  1. 【CityHunter】游戏进度总控,及需求设计
  2. mysql查看锁表情况
  3. vim - save current file with a new name but keep editing current file
  4. javascript基础语法——词法结构
  5. 【secureCRT】永久设置背景色和文字颜色
  6. html5实现渐变效果
  7. 使用Python操作Redis
  8. Android 带你从源码的角度解析Scroller的滚动实现原理
  9. Android浏览器访问java web的方法
  10. 创建 Pull Request
  11. Codeforces 725E Too Much Money (看题解)
  12. VS动态修改App.config中遇到的坑(宿主进程问题)
  13. Java Servlet 过滤器与 springmvc 拦截器的区别?
  14. Server Performance Advisor (SPA) 3.0
  15. 《Unix&amp;Linux大学教程》学习笔记二:指令常识
  16. springmvc web.xml配置之 -- DispatcherServlet
  17. Django+Nginx+uwsgi搭建自己的博客(五)
  18. [GO]goroutine的使用
  19. ORB_SLAM2应用实践_ROS小强机器人
  20. GetFileVersionInfoSize函数确定操作系统是否可以检索指定文件的版本信息

热门文章

  1. ASP.NET MVC学前篇之Ninject的初步了解
  2. 搭建Cordova开发环境
  3. WCF服务的异常消息
  4. Module Zero之Nuget包
  5. CSS 布局口诀
  6. JSON-fastjson
  7. SSIS Design4: 处理外键
  8. lambda表达式之进化
  9. 关于一道数据库例题的解析。为什么σ age&gt;22 (πS_ID,SCORE (SC) ) 选项是错的?
  10. Hammer.js分析(一)——基础结构