作者 主題: ajax xml responsexml我有附code  (閱讀 8150 次)

0 會員 與 1 訪客 正在閱讀本文。

godisgood

  • 憂鬱的高中生
  • ***
  • 文章數: 180
    • 檢視個人資料
ajax xml responsexml我有附code
« 於: 2007-06-19 18:38 »
大家好希望我po對地方 , 我也有加code上來
我現在假設在php回傳了不只一筆的資籵 , 我用php echo xml
不知對不對 , 然後交由javascript處理
xml
代碼: [選擇]

<?php
header
&#40;'Content-type&#58; text/xml'&#41;;
echo "<?xml version=\"1.0\" encoding=\"Big5\"?>
";
echo "<areas>";
echo "<area>中區</area>";
echo "<area>北屯區</area>";
echo "<area>南區</area>";
echo "<area>南屯區</area>";
echo "<area>taipei</area>";
echo "</areas>";
?>


html
代碼: [選擇]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Untitled</title>
</head>

<body>
<script language="javascript">
var http_request = false;
function makeXML(){
http_request = false;
if(window.XMLHttpRequest){
http_request = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
http_request = new ActiveXObject("Msxm12.XMLHTTP");
}catch(e){
try{
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
}
}
}
if (!http_request) {
     alert('Giving up :( Cannot create an XMLHTTP instance');
     return false;
   }

http_request.onreadystatechange = makeDone;
http_request.open("GET",'taichung.php',true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http_request.send(null);
}
function makeDone(){
if (http_request.readyState == 4) {
alert(http_request.status);
     if (http_request.status == 200) {
       var xmldoc = http_request.responseXML;
       var nodes = xmldoc.getElementsByTagName('area');
       var mesg = "";
       for(var i=0; i<nodes.length; i++) {
         mesg += nodes[i].firstChild.nodeValue + "\n";
       }
       alert(mesg);
     } else {
       alert('There was a problem with the request.');
}
    }
}
</script>
<input type='button'onclick='makeXML();'value='click me'>
<div id='msg'></div>
</body>
</html>

但alert時沒有資料出現 , 不知那裡出了問題

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
ajax xml responsexml我有附code
« 回覆 #1 於: 2007-06-20 12:35 »
直接套用你貼的程式,沒有問題耶?不論在ie7或是firefox2.1都可以跑,alert也正常。即使有錯誤,也還是會顯示代碼ex: 404。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

godisgood

  • 憂鬱的高中生
  • ***
  • 文章數: 180
    • 檢視個人資料
ajax xml responsexml我有附code
« 回覆 #2 於: 2007-06-20 15:36 »
那通常我們在php 回給javascript時 , 通常用javascript怎麼去處理

xml資料後變成表格化呢 , 也許我要列出會員之類 , 或options

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5392
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
ajax xml responsexml我有附code
« 回覆 #3 於: 2007-06-20 16:12 »
在 server 端 (php), 直接傳 json 格式的資料, 這樣子 client 端的 javascript 就可以直接用了.

godisgood

  • 憂鬱的高中生
  • ***
  • 文章數: 180
    • 檢視個人資料
ajax xml responsexml我有附code
« 回覆 #4 於: 2007-06-20 17:53 »
請問只能回傳像json 格式資料嗎 , 是否有其他方式呢

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5392
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
ajax xml responsexml我有附code
« 回覆 #5 於: 2007-06-20 18:18 »
你高興傳什麼就可以傳什麼, 只要你的 javascript 能讀的出來就可以.
只是... 給 javascript 處理的, 直接給 javascript 的格式不是最容易的方法嗎?

godisgood

  • 憂鬱的高中生
  • ***
  • 文章數: 180
    • 檢視個人資料
ajax xml responsexml我有附code
« 回覆 #6 於: 2007-06-20 19:04 »
這也對 , 所以在找個php json library來用傳給js

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
ajax xml responsexml我有附code
« 回覆 #7 於: 2007-06-21 00:02 »
引述: "godisgood"
這也對 , 所以在找個php json library來用傳給js



如果你用的是 php 5.2.0 以上的版本, 已內建有 json 編碼、解碼函數,

如果使用 5.2.0 以下的版本, 可以試試這個 ..

http://www.aurore.net/projects/php-json/

godisgood

  • 憂鬱的高中生
  • ***
  • 文章數: 180
    • 檢視個人資料
ajax xml responsexml我有附code
« 回覆 #8 於: 2007-06-21 09:01 »
所以我若是回傳了json data type後就在以javascript去createElement的方式去建table loop出相關的列表囉 , 假設我是要呈現list 資料