<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 閱讀(219) 評論(0)  編輯  收藏 所屬分類: PHP+MySQL開發
    主站蜘蛛池模板: 男人的天堂亚洲一区二区三区 | 在线免费观看h片| 免费看www视频| 亚洲高清中文字幕免费| 91久久青青草原线免费| 亚洲综合综合在线| 91免费在线播放| 亚洲一区二区三区高清视频| 九九精品免费视频| 亚洲第一街区偷拍街拍| 国产精品免费视频网站| 免费看一级毛片在线观看精品视频| 无码专区一va亚洲v专区在线| 黄色大片免费网站| 国产亚洲成归v人片在线观看| 水蜜桃视频在线观看免费播放高清| 亚洲啪啪AV无码片| a国产成人免费视频| 中文字幕亚洲色图| 综合在线免费视频| 亚洲另类无码专区首页| 亚洲男人av香蕉爽爽爽爽| a级毛片免费全部播放无码| 久久亚洲日韩精品一区二区三区| 精品无码人妻一区二区免费蜜桃| 亚洲乱码卡三乱码新区| 成人免费a级毛片| 无码日韩人妻AV一区免费l| 亚洲AV无码国产在丝袜线观看| 国产92成人精品视频免费| 亚洲日韩AV一区二区三区四区| 亚洲Av无码乱码在线播放| A级毛片高清免费视频在线播放| 亚洲国产精品婷婷久久| 日本一区二区三区免费高清| 黄色a三级免费看| 亚洲国产日韩在线视频| 最近中文字幕mv免费高清视频7| 国产福利免费观看| 精品无码国产污污污免费网站国产| 亚洲午夜在线电影|