PHP中使用DOM

幫別人修改了一個PHP中創建xml的ajax程序,感覺很是羅嗦,自己對PHP也不是太瞭解,也都是通過google才最終完成,總算是實現了功能。
一共只有兩個文件,一個html頁面,還有一個服務器端文件
首先是html,填寫姓名、年齡、性別,然後服務器接受返回xml格式,並解析顯示在test的後面。
html文件:
[code]<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>[/code]

PHP文件:
[code]<?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();
?>[/code]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章