Javascript 使用Ajax
2016-01-28 23:38
639 查看
基本步骤
GET方式
1. 定义XMLHttpRequest对象
var request = new XMLHttpRequest();
2. 使用GET方式打开服务器地址
request.open("GET","server.php?id="+document.getElementById("keyword").value);
3. 发起GET请求
request.send();
4. 监听服务器的操作状态,并做出响应
request.onreadystatechange = function(){ if(request.readyState == 4){ if(request.status == 200){ document.getElementById("searchRes").innerHTML = request.responseText; }else{ document.getElementById("searchRes").innerHTML = "发生错误:"+request.status; } } }
POST方式
1. 定义XMLHttpRequest对象
var request = new XMLHttpRequest();
2. 使用POST方式打开服务器地址
request.open("POST","server.php");
3. 定义需要传递的数据
var data = "id="+document.getElementById("id").value+"&name="+document.getElementById("name").value+"&job="+document.getElementById("job").value;
4. 设置请求头
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
5. 发起POST请求(发送数据)
request.send(data);
6. 监听服务器的操作状态,并做出响应
request.onreadystatechange = function(){ if(request.readyState == 4){ if(request.status == 200){ document.getElementById("addRes").innerHTML = request.responseText; }else{ document.getElementById("addRes").innerHTML = "发生错误:"+request.status; } } }
操作实例
XMLHttpRequest.html<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>XMLHttpRequest</title>
<style type="text/css">
*{
font-size:25px;
line-height:1.8;
}
</style>
</head>
<body>
<h1>查询员工</h1>
员工编号:<input type="text" id="keyword"/>
<input type="button" id="search" value="查询"/><br/>
<p id="searchRes"></p>
<h1>添加员工</h1>
员工编号:<input type="text" id="id"/><br/>
员工姓名:<input type="text" id="name"/><br/>
员工职位:<input type="text" id="job"/><br/>
<input type="button" id="add" value="添加"/><br/>
<p id="addRes"></p>
<script>
//查询员工
document.getElementById("search").onclick = function(){
var request = new XMLHttpRequest();
request.open("GET","server.php?id="+document.getElementById("keyword").value);
request.send();
request.onreadystatechange = function(){ if(request.readyState == 4){ if(request.status == 200){ document.getElementById("searchRes").innerHTML = request.responseText; }else{ document.getElementById("searchRes").innerHTML = "发生错误:"+request.status; } } }
}
//添加员工
document.getElementById("add").onclick = function(){
var request = new XMLHttpRequest();
request.open("POST","server.php");
var data = "id="+document.getElementById("id").value+"&name="+document.getElementById("name").value+"&job="+document.getElementById("job").value;
alert(data);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.send(data);
request.onreadystatechange = function(){ if(request.readyState == 4){ if(request.status == 200){ document.getElementById("addRes").innerHTML = request.responseText; }else{ document.getElementById("addRes").innerHTML = "发生错误:"+request.status; } } }
}
</script>
</body>
</html>
server.php
<?php header("Content-Type:text/plain;charset=utf-8"); if($_SERVER["REQUEST_METHOD"] == "GET"){ search(); }elseif($_SERVER["REQUEST_METHOD"] == "POST"){ add(); } function search(){ //判断职工编号是否正确填写 if(!isset($_GET["id"]) || empty($_GET["id"])){ echo "参数错误"; return; } $id = $_GET["id"]; $result = "没有找到员工"; $mysqli = new mysqli('localhost', 'root', '', 'test'); $mysqli->query("SET NAMES UTF8"); $sql = "SELECT * FROM staff WHERE id=".$id; $res = $mysqli->query($sql); $row = $res->fetch_assoc(); if(is_array($row) && $row['id']==$id){ $result = "找到员工<br/>员工编号:".$id.",员工姓名:".$row['name'].",员工职位:".$row['job']; } echo $result; $mysqli->close(); } function add(){ //判断信息是否填写完整 if(isset($_POST["id"])&&isset($_POST["name"])&&isset($_POST["job"])&&!empty($_POST["id"])&&!empty($_POST["name"])&&!empty($_POST["job"])){ $id = $_POST["id"]; $name = $_POST["name"]; $job = $_POST["job"]; $mysqli = new mysqli('localhost', 'root', '', 'test'); $mysqli->query("SET NAMES UTF8"); $sql = "INSERT INTO staff(id,name,job) VALUES ($id,'$name','$job')"; $result = $mysqli->query($sql); if($result==true){ echo "添加员工操作成功"; } $mysqli->close(); }else{ echo "参数错误,信息填写不完整"; } }
相关文章推荐
- #学习笔记#(28)JS瀑布流-慕课
- Jsp实现筛选并压缩文件批量下载
- input文本框只能输入数字
- JavaScript优化(三)
- xml json 互转
- JavaScript设计模式学习笔记
- javascript日期字符串和日期对象相互转换
- 使用js中断表单的提交动作的方法
- 跟我一起学extjs5(18--模块的新增、改动、删除操作)
- Javascript 如何修改CSS样式(网页样式) 补充说明
- jsp乱码
- JSP动作指令初级解析
- EXTJS Ajax请求中文乱码
- javascript indexOf startWith
- JSON例子应用
- 图表插件 - chart.js (柱状图) 学习总结
- struts2如何在提交前进行js代码判断
- 【JSOI2015】字符串树
- JsViews Error:Unknown template:“#projectData”
- Rhino -- 基于java的javascript实现