html+js+php一次原始的Ajax请求示例
程序员文章站
2022-06-29 12:32:41
今天给大家呈现一个原始的ajax请求过程,虽然jquery的ajax要比原始的写法容易得多,我们还是应该了解原始的写法,下面我分为html、js、php三个小文件来展示,数...
今天给大家呈现一个原始的ajax请求过程,虽然jquery的ajax要比原始的写法容易得多,我们还是应该了解原始的写法,下面我分为html、js、php三个小文件来展示,数据库自己写。
首先是html:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>一次简单的ajax请求</title>
<script language="javascript" src="js/ajaxtest.js"></script>
</head>
<body>
用户名:<input id="username" type="text"></input>
密码:<input id="password" type="password"></input>
<span id="showinputerror" style="color:red;font-weight: bold;"></span><br>
<input type="button" value="登录" onclick="showselect()">
</body>
</html>
然后是js:
/**
* 普通ajax的完整访问过程
*/
var xmlhttp
function showselect()//登录按钮点击后执行这个方法
{
var username=document.getelementbyid("username").value;
var password=document.getelementbyid("password").value;
if (username.length==0)//验证输入用户名是否为空
{
document.getelementbyid("showinputerror").innerhtml="用户名不能为空";//提示用户名不能为空
return
}
xmlhttp=getxmlhttpobject()
if (xmlhttp==null)
{
alert ("browser does not support http request")
return
}
var url="ajaxtest.php"//设置要提交action到后台的那个处理请求的文件名
url=url+"?username="+username+"&password="+password//为这个路径加上参数用户名和密码
url=url+"&sid="+math.random()//为这个路径加上一个随机数
xmlhttp.onreadystatechange=statechanged//每当 readystate 改变时,就会触发 onreadystatechange 事件,readystate 属性存有 xmlhttprequest 的状态信息
xmlhttp.open("get",url,true)//定义请求的参数
xmlhttp.send(null)//发送请求
}
function statechanged()
{
if (xmlhttp.readystate==4 || xmlhttp.readystate=="complete")//
//0: 请求未初始化
//1: 服务器连接已建立
//2: 请求已接收
//3: 请求处理中
//4: 请求已完成,且响应已就绪
{ var a= xmlhttp.responsetext;//把相应数据赋值给a
if(a=="yes"){
self.location='main.php';//跳转到main.php
}else{
document.getelementbyid("showinputerror").innerhtml="用户名或密码错误";//提示用户名或密码错误
}
}
}
function getxmlhttpobject()
{
var xmlhttp=null;
try
{
// firefox, opera 8.0+, safari
xmlhttp=new xmlhttprequest();
}
catch (e)
{
// internet explorer
try
{
xmlhttp=new activexobject("msxml2.xmlhttp");
}
catch (e)
{
xmlhttp=new activexobject("microsoft.xmlhttp");
}
}
return xmlhttp;
}
最后是php:
<?php
$username=$_get["username"];
$pwd=$_get["password"];
$con = mysql_connect("localhost","root","123456");
mysql_select_db("my_test", $con);
mysql_query("set names utf8");
$sql="select * from userinfo where username='".$username."' and pwd='".$pwd."'";
$result=mysql_query($sql);
$select=mysql_num_rows($result);
$a="no";
if ($select>0){$a="yes";}
echo $a;
mysql_close($con);
?>
首先是html:
复制代码 代码如下:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>一次简单的ajax请求</title>
<script language="javascript" src="js/ajaxtest.js"></script>
</head>
<body>
用户名:<input id="username" type="text"></input>
密码:<input id="password" type="password"></input>
<span id="showinputerror" style="color:red;font-weight: bold;"></span><br>
<input type="button" value="登录" onclick="showselect()">
</body>
</html>
然后是js:
复制代码 代码如下:
/**
* 普通ajax的完整访问过程
*/
var xmlhttp
function showselect()//登录按钮点击后执行这个方法
{
var username=document.getelementbyid("username").value;
var password=document.getelementbyid("password").value;
if (username.length==0)//验证输入用户名是否为空
{
document.getelementbyid("showinputerror").innerhtml="用户名不能为空";//提示用户名不能为空
return
}
xmlhttp=getxmlhttpobject()
if (xmlhttp==null)
{
alert ("browser does not support http request")
return
}
var url="ajaxtest.php"//设置要提交action到后台的那个处理请求的文件名
url=url+"?username="+username+"&password="+password//为这个路径加上参数用户名和密码
url=url+"&sid="+math.random()//为这个路径加上一个随机数
xmlhttp.onreadystatechange=statechanged//每当 readystate 改变时,就会触发 onreadystatechange 事件,readystate 属性存有 xmlhttprequest 的状态信息
xmlhttp.open("get",url,true)//定义请求的参数
xmlhttp.send(null)//发送请求
}
function statechanged()
{
if (xmlhttp.readystate==4 || xmlhttp.readystate=="complete")//
//0: 请求未初始化
//1: 服务器连接已建立
//2: 请求已接收
//3: 请求处理中
//4: 请求已完成,且响应已就绪
{ var a= xmlhttp.responsetext;//把相应数据赋值给a
if(a=="yes"){
self.location='main.php';//跳转到main.php
}else{
document.getelementbyid("showinputerror").innerhtml="用户名或密码错误";//提示用户名或密码错误
}
}
}
function getxmlhttpobject()
{
var xmlhttp=null;
try
{
// firefox, opera 8.0+, safari
xmlhttp=new xmlhttprequest();
}
catch (e)
{
// internet explorer
try
{
xmlhttp=new activexobject("msxml2.xmlhttp");
}
catch (e)
{
xmlhttp=new activexobject("microsoft.xmlhttp");
}
}
return xmlhttp;
}
最后是php:
复制代码 代码如下:
<?php
$username=$_get["username"];
$pwd=$_get["password"];
$con = mysql_connect("localhost","root","123456");
mysql_select_db("my_test", $con);
mysql_query("set names utf8");
$sql="select * from userinfo where username='".$username."' and pwd='".$pwd."'";
$result=mysql_query($sql);
$select=mysql_num_rows($result);
$a="no";
if ($select>0){$a="yes";}
echo $a;
mysql_close($con);
?>