<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一江春水向東流

    做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

    AJAX學習

    從天極網上看了一些關于AJAX的內容之后,就想試試看。小試牛刀,寫了一個小程序

    這是客戶端代碼:
    <html>
    <head>
    <title></title>
    <script language="javascript">
    /**
    * 初始化一個xmlhttp對象
    */
    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;
    }
    </script>
    </head>
    <body>
    <a href="#" onclick="getNews(1)">新聞</a>
    <div id="show_news"></div>
    <script>
    function getNews(newID)
    {
    if(typeof(newID)=='undefined')
    {
    ?return false;
    }
    var url="getmsg.php?id="+newID;
    var show=document.getElementById("show_news");
    var ajax=InitAjax();
    ajax.open("GET",url,true);
    ajax.onreadystatechange=function(){
    if(ajax.readyState==4&& ajax.status==200){
    show.innerHTML=ajax.responseText;
    }
    }
    ajax.send(null);
    }
    </script>

    下面是服務器端的.PHP文件
    <?php
    if($_GET[id]){
    ?echo"all right<br>";
    ?echo"the id is".$id;
    }
    ?>
    放到我的空間上測度一下效果不錯。

    在Ajax中,關鍵就是用到了xmlhttp對象以及javascript,先是在初始化程序中生成一個xmlhttp對象,如果是IE的話,就是ActiveXObject對象。進一步就是把請求方法和url作為參數傳入這個對象,當有響應時再實現onreadystatechange()方法。對返回的內容進行處理。原理就是這樣簡單。

    用POST方法實現,上面那個用的是GET方法。這個我沒有寫具體的代碼作測試,只是我把不同的地方指出來。
    POST方法主要是通過表單來實現,但是這個表單不能寫上提交目標,表單的頭應該寫成類似于下面的格式
    <form name="user_info">,而action,method就可以免了。


    //構建一個表單,表單中不需要action、method之類的屬性,全部由ajax來搞定了。
    <form name="user_info">
    姓名:<input type="text" name="user_name" /><br />
    年齡:<input type="text" name="user_age" /><br />
    性別:<input type="text" name="user_sex" /><br />

    <input type="button" value="提交表單" onClick="saveUserInfo()">
    </form>
    //構建一個接受返回信息的層:
    <div id="msg"></div>

    function saveUserInfo()
    {
     //獲取接受返回信息層
     var msg = document.getElementById("msg");

     //獲取表單對象和用戶信息值
     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";

     //需要POST的值,把每個變量都通過&來聯接
     var postStr = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;

     //實例化Ajax
     var ajax = InitAjax();
     
     //通過Post方式打開連接
     ajax.open("POST", url, true);

     //定義傳輸的文件HTTP頭信息
     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

     //發送POST數據
     ajax.send(postStr);

     //獲取執行狀態
     ajax.onreadystatechange = function() {
      //如果執行狀態成功,那么就把返回信息寫到指定的層里
      if (ajax.readyState == 4 && ajax.status == 200) {
       msg.innerHTML = ajax.responseText;
      }
     }
    }

    比較GET和POST兩方法,因為POST方法能發送任何數據,而且大小沒有限制,因而比較靈活。不過要在ajax對象中指定HTTP頭信息。其它同GET方法類似。

    posted on 2006-11-24 12:38 allic 閱讀(214) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發
    主站蜘蛛池模板: 亚洲AV色欲色欲WWW| 免费在线观看亚洲| 中文字幕人成无码免费视频| 波多野结衣免费在线观看| 无码区日韩特区永久免费系列 | 狠狠躁狠狠爱免费视频无码| 成人毛片100免费观看| 91av视频免费在线观看| 成人免费视频国产| www国产亚洲精品久久久日本| 免费福利电影在线观看| 7723日本高清完整版免费| 成人人观看的免费毛片| 黄瓜视频影院在线观看免费| 日本免费v片一二三区| 亚洲精品天天影视综合网| 国产精品亚洲lv粉色| 久久久免费精品re6| 亚洲欧洲日本在线| 亚洲精品无码久久久久久| 免费国产黄网站在线观看| 亚洲精品无码久久不卡| 亚洲熟妇AV一区二区三区浪潮| 亚洲第一精品在线视频| 一级女性全黄久久生活片免费 | 亚洲精品国产福利一二区| 中文字幕亚洲综合久久综合| 午夜精品免费在线观看| 久久久久久a亚洲欧洲aⅴ| 成人嫩草影院免费观看| 国产a不卡片精品免费观看| 亚洲日本VA午夜在线电影| 很黄很污的网站免费| 国产亚洲精品自在久久| 一进一出60分钟免费视频| 无码国模国产在线观看免费| 亚洲精品精华液一区二区| 爽爽日本在线视频免费| 亚洲精品国产suv一区88| 国产精品美女自在线观看免费| 国产成人高清精品免费鸭子|