`
小嘴看世界
  • 浏览: 130153 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

PHP中使用DOM

    博客分类:
  • Web
阅读更多
帮别人修改了一个PHP中创建xml的ajax程序,感觉很是罗嗦,自己对PHP也不是太了解,也都是通过google才最终完成,总算是实现了功能。
一共只有两个文件,一个html页面,还有一个服务器端文件
首先是html,填写姓名、年龄、性别,然后服务器接受返回xml格式,并解析显示在test的后面。
html文件:
<script language="javascript">
function InitAjax()
{
	var ajax=false; 
	try { 
		ajax = new ActiveXObject("Msxml2.XMLHTTP"); 
	} catch (e) { 
		try { 
			ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (E) { 
			ajax = false; 
		} 
	}
	if (!ajax && typeof XMLHttpRequest!='undefined') { 
		ajax = new XMLHttpRequest(); 
	} 
	return ajax;
}

function saveUserInfo()
{
  	var name = document.getElementById("name");
	var age = document.getElementById("age");
	var sex = document.getElementById("sex");
	var f = document.user_info;//获取表单对象和用户信息值
 	var userName = f.user_name.value;
 	var userAge  = f.user_age.value;
 	var userSex  = f.user_sex.value;
 	//接收表单的URL地址
 	var url = "./save_info.php?user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;
 	var ajax = InitAjax();
 	ajax.open("POST", url, true); 
 	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
 	ajax.send(null);
	ajax.onreadystatechange = function() { 
  	if (ajax.readyState == 4 && ajax.status == 200) {
		alert(ajax.responseText);
		if(window.ActiveXObject){
			var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = false;
			xmlDoc.loadXML(ajax.responseText);
		}else{
			var parser = new DOMParser();
			var xmlDoc = parser.parseFromString(ajax.responseText,"text/xml");
		}
		var hasError = xmlDoc.getElementsByTagName('error').length > 0 ? true:false; 
		if(hasError){
			alert("dom error");
		}else{
			document.getElementById("name").innerText=xmlDoc.getElementsByTagName('name')[0].childNodes[0].nodeValue;
			document.getElementById("age").innerText=xmlDoc.getElementsByTagName('age')[0].childNodes[0].nodeValue;
			document.getElementById("sex").innerText=xmlDoc.getElementsByTagName('sex')[0].childNodes[0].nodeValue;
		} 
  	 } 	
   } 
}
</script>
<form name="user_info" method="post">
	<table>
		<tr><td>姓名:<input type="text" name="user_name" /></td><td><div id="name"></div></td></tr>
		<tr><td>年龄:<input type="text" name="user_age" /></td><td id="age"></td></tr>
		<tr><td>性别:<input type="text" name="user_sex" /><br /></td><td id="sex"></td></tr>
		<tr><td><input type="button" value="提交表单" onClick="saveUserInfo()"></td><td></td></tr>
	</table> 
</form>


PHP文件:
<?php
	// create doctype
	$dom = new DOMDocument('1.0', 'UTF-8');

	$user_name=iconv('gbk','utf-8',$user_name);
	$user_age=iconv('gbk','utf-8',$user_age);
	$user_sex=iconv('gbk','utf-8',$user_sex);

	// create root element
	$root = $dom->createElement("msg");
	//$root->setAttribute('ID',"123");
	$id = $dom->createAttribute("id");
	$idValue = $dom->createTextNode("123");
	$id->appendChild($idValue);

	$root->appendChild($id);
	$dom->appendChild($root);

	// create child element
	$item = $dom->createElement("name");
	$root->appendChild($item);

	// create text node
	$text = $dom->createTextNode($user_name);
	$item->appendChild($text);

	$item = $dom->createElement("age");
	$root->appendChild($item);

	$text = $dom->createTextNode($user_age);
	$item->appendChild($text);

	$item = $dom->createElement("sex");
	$root->appendChild($item);

	$text = $dom->createTextNode($user_sex);
	$item->appendChild($text);

	// save and display tree
	echo $dom->saveXML();
?>
  • ajax.rar (1.5 KB)
  • 描述: src
  • 下载次数: 5
分享到:
评论
2 楼 小嘴看世界 2007-04-04  
拿一个节点使用getElementsByTagName就可以了
1 楼 ddbird 2007-04-03  
问下,如何拿 tag的name?

相关推荐

Global site tag (gtag.js) - Google Analytics