Ajax相关知识点总结

Ajax学习的相关笔记,以便于自己查阅,巩固

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>用户注册页面</title>
	<script type="text/javascript">
		var xmlHttpRequest;
		var myXmlRequest ="";
		function getXmlHttpObject(){
			
			if(window.ActiveObject){
				xmlHttpRequest = new ActiveObject("Microsoft.XMLHTTP");
			}else{
				xmlHttpRequest = new XMLHttpRequest();
			}
			return xmlHttpRequest;
		}

		function checkName(){
				myXmlRequest = getXmlHttpObject();
				if(myXmlRequest){
					//new Date()去掉缓存的方法一
					var url = "./registerProcess.php?mytime="+new Date()+"&username="+$("username").value;
					myXmlRequest.open('get',url,true);
					myXmlRequest.onreadystatechange = chuli;
					myXmlRequest.send(null);
				}
		}
		function chuli(){
			if(myXmlRequest.readyState == 4){
				//取出返回信息的格式
				$('myres').value = myXmlRequest.responseText;
			}
		}
		function $(id){
			return document.getElementById(id);
		}
	</script>
</head>
<body>
	<form action="./registerProcess.php" method="post">
		用户名 : <input type="text" name="username" id="username" />
		<input type="button" name="button" value="验证用户名" onclick="checkName()" />
		<input type="text" name="" id="myres" style="border-width:0;color:red">
		<br>
		用户密码: <input type="password" name="password" /><br>
		电子邮件: <input type="text" name="email" /><br>
		<input type="submit" value="用户注册" />
		<br>
	</form>
	<form action="" method="post">
		用户名 : <input type="text" name="username2" id="username2" />
		<br>
		用户密码: <input type="password" name="password" /><br>
		电子邮件: <input type="text" name="email" /><br>
		<input type="submit" value="用户注册" /><br>
	</form>
</body>
</html>

ajax post 方式请求

笔记中的http_request 改成 myXmlHttpRequest

php里面的修改

ajax 如何处理返回数据xml格式的情况

ajax 如何处理返回数据json格式的情况

一.Json对象与Json字符串的转化

1.jQuery插件支持的转换方式

$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象

2.浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:

  JSON.stringify(obj)将JSON转为字符串。JSON.parse(string)将字符串转为JSON格式;

var a={"name":"tom","sex":"男","age":"24"}; 
var b='{"name":"Mike","sex":"女","age":"29"}';  //试用JSON.parse的方法,内部的数据必须都试用双引号
var aToStr=JSON.stringify(a); 
var bToObj=JSON.parse(b); 
alert(typeof(aToStr));  //string 
alert(typeof(bToObj));//object

3.Javascript支持的转换方式: 
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号 
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。

4.JSON官方的转换方式: 
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法; 
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。

如何选择三种的数据个格式

Ajax 实现省市联动实例

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>二级城市省市联动</title>
</head>
<body>
	<select id="one">
		<option value="">--请选择--</option>
		<option value="0">浙江省</option>
		<option value="1">广东省</option>
		<option value="2">福建省</option>
	</select>
	<select id="two">
		<option value="">--请选择--</option>
	</select>
	<select id="three">
		<option value="">--请选择--</option>
	</select>
	<script type="text/javascript">
		var one = document.getElementById('one');
		var two = document.getElementById('two');
		var three = document.getElementById('three');
		var city = [],city1 = [];

		//定义二级数据
		//
	    city[0] = ['杭州市','西湖市'];
	    city[1] = ['广州市'];
	    city[2] = ['厦门市'];

	    city1[0] = ['百度','谷歌'];
	    city1[1] = ['360','搜狗'];

		one.onchange = function(m){
			var m = one.value;
			two.length = 0;
			for(var i=0;i<city[m].length;i++){
				var op = new Option(city[m][i],i);
				two.add(op)
			}
			two.length = city[m].length;
		}
		two.onchange = function(m){
			var m = two.value;
			three.length = 0;
			for(var i=0;i<city1[m].length;i++){
				var op = new Option(city1[m][i],i);
				three.add(op)
			}
			three.length = city1[m].length;
		}
	</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_27702739/article/details/81835229