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

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

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

    XAJAX 編程入門實例兩則

    作者:snow 日期:2006-01-25

    XAJAX是一個比較優秀的AJAX toolkit工具,安裝很簡單,就是吧他的xajax.inc.php文件copy到你制定的目錄下面就可以了。
    下面舉兩個列子來說明如何使用

    1)helloworld
    helloworld是每一個編程語言所必須的,所以這里也不例外,我會就代碼給出解釋



    <?php
    // helloworld.php demonstrates a very basic xajax implementation
    // using xajax version 0.1 beta4
    //
    http://xajax.sourceforge.n...

    require ('xajax.inc.php');? #必須的,放到腳本的最前面

    #調用函數,該函數被javascript調用
    function helloWorld($isCaps)
    {
    if ($isCaps)
    $text = "HELLO WORLD!";
    else
    $text = "Hello World!";

    $objResponse = new xajaxResponse();
    $objResponse->addAssign("div1","innerHTML",$text); #給id為div1的html元素的innerHTML屬性分配$text指,其他的方法請參考前面貼出的XAJAX介紹

    return $objResponse->getXML();?? #返回賦值后的代碼,采用xml格式
    }

    // Instantiate the xajax object. No parameters defaults requestURI to this page, method to POST, and debug to off
    $xajax = new xajax();

    //$xajax->debugOn(); // Uncomment this line to turn debugging on

    // Specify the PHP functions to wrap. The JavaScript wrappers will be named xajax_functionname
    $xajax->registerFunction("helloWorld"); #注冊函數,這個也是必須的,用來保證,javascript能調用php里面的函數
    // Process any requests. Because our requestURI is the same as our html page,
    // this must be called before any headers or HTML output have been sent
    $xajax->processRequests();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
    http://www.w3.org/TR/xhtm....
    <html>
    <head>
    <title>xajax example</title>
    <?php
    #輸出javascript腳本,這個方法必須放在head之間,特別是應該放在<html>標簽之前,否則無法工組
    $xajax->printJavascript();
    ?>
    </head>
    <body style="text-align:center;">
    <div id="div1" name="div1">&#160;</div>
    <br/>

    <button onclick="xajax_helloWorld(0)" >Click Me</button>
    <button onclick="xajax_helloWorld(1)" >CLICK ME</button>
    <script type="text/javascript">
    xajax_helloWorld(0); // call the helloWorld function to populate the div on load
    </script>
    </body>
    </html>


    上面的腳本是一個簡單的例子,但是體現了XAJAX使用的一個流程。需要注意的是在html腳本中,我們調用的函數名是
    xajax_helloWorld (),但是我們編程和注冊的函數名卻是helloWorld,這不是一個錯誤,而是必須這樣做,你可以查看xajax.inc.php的代碼就知道,他默 認的在html調用的函數名前綴就是xajax_helloWorld(),因此如果你不修改xajax.inc.php,那么你在html里面調用函數 就必須加上xajax_這樣的前綴。

    程序演示

    2)表單處理
    這個例子是我花時間比較多的,也是大家比較關心的,雖然官方也給出了一個form的例子,但是對表單數據的處理都是自己再重新寫的函數,而沒有使用xajax.getFormValues函數,個人覺得比較復雜。下面是官方的form演示和源代碼

    form演示

    form源代碼

    下面是我的代碼

    <?php
    require("includes/xajax.inc.php");
    function doSomething( $formData )
    {
    $objResponse = new xajaxResponse();
    $str="";
    foreach($formData as $key=>$value)
    if (empty($str))
    $str.=$key."='".$value."'";
    else
    $str.=",".$key."='".$value."'";
    //$str="form data is ".implode(",",$formData);
    //$objResponse->addAlert(print_r($formData));
    $objResponse->addAssign("result", "innerHTML", $str );
    return $objResponse->getXML();
    }

    function hb()
    {
    $objResponse = new xajaxResponse();
    $objResponse->addAssign("doIt", "value", "Working...");
    $objResponse->addAssign("doIt", "disabled", true);
    $objResponse->addScript("xajax_doSomething(xajax.getFormValues('someForm'));");

    return $objResponse->getXML();
    }


    ?>
    <?php
    $xajax = new xajax();
    //$xajax->debugOn();
    $xajax->registerFunction("doSomething");
    $xajax->registerFunction("hb");
    $xajax->processRequests();
    ?>
    <HTML>
    <HEAD>
    <?php $xajax->printJavascript(); ?>
    </HEAD>

    <BODY>
    <form id='someForm'>
    <table>
    <tr>
    <td>username:
    <input type="text" name='user' id='user' />
    </td>
    <td>password:<input type="password" id='pwd' name='pwd' /></td>
    <td><input type='button' id='doIt' value='Do It' onClick="xajax_hb()"></input>
    </td></tr>
    </table>
    </form>

    <div id='result'>
    </div>
    </BODY>
    </HTML>


    這個要注意的比較多
    a)表單的元素必須有name屬性,這個一定要注意,這是我痛苦了一天得到的結果,否則getFormValues函數將得不到表單數據。
    b) doSomething($formData)函數中的參數$formData是一個數組元素,索引是表單元素的名稱(屬性name的值),其值是表單元素的值(屬性value的值)
    c) 如果debugon打開了,可能會出現死循環的警告窗口,目前還不知道原因。
    posted on 2006-09-13 22:25 JRobot 閱讀(483) 評論(0)  編輯  收藏 所屬分類: xml相關
    主站蜘蛛池模板: 亚洲色无码专区在线观看| 无人影院手机版在线观看免费| 天堂亚洲免费视频| 黄色a级免费网站| 亚洲精品tv久久久久| 午夜免费国产体验区免费的| 亚洲av区一区二区三| 新最免费影视大全在线播放| 亚洲伊人成无码综合网| 国产vA免费精品高清在线观看 | 亚洲福利视频一区二区| 一个人看的免费视频www在线高清动漫 | 免费人成视频在线观看视频| 女bbbbxxxx另类亚洲| 亚洲国模精品一区| 黄桃AV无码免费一区二区三区| 精品国产综合成人亚洲区| 一级成人a毛片免费播放| 久久丫精品国产亚洲av不卡| 成人免费视频77777| 在线观看亚洲视频| 在线A亚洲老鸭窝天堂| 一级毛片在线免费观看| 狠狠色香婷婷久久亚洲精品| 日本免费网站观看| fc2成年免费共享视频网站| 亚洲AV无码成人精品区天堂 | 亚洲国产精品国产自在在线| 抽搐一进一出gif免费视频| 亚洲欧洲视频在线观看| 国产色爽免费视频| 99精品免费视品| 亚洲性线免费观看视频成熟| 亚洲狠狠爱综合影院婷婷| 1000部夫妻午夜免费| 美女被免费网站视频在线| 亚洲丁香色婷婷综合欲色啪| 在线观看视频免费国语| 中国一级毛片视频免费看| 亚洲最大无码中文字幕| 亚洲乱码国产一区三区|