<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是一個比較優(yōu)秀的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');? #必須的,放到腳本的最前面

    #調(diào)用函數(shù),該函數(shù)被javascript調(diào)用
    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"); #注冊函數(shù),這個也是必須的,用來保證,javascript能調(diào)用php里面的函數(shù)
    // 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之間,特別是應(yīng)該放在<html>標(biāo)簽之前,否則無法工組
    $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>


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

    程序演示

    2)表單處理
    這個例子是我花時間比較多的,也是大家比較關(guān)心的,雖然官方也給出了一個form的例子,但是對表單數(shù)據(jù)的處理都是自己再重新寫的函數(shù),而沒有使用xajax.getFormValues函數(shù),個人覺得比較復(fù)雜。下面是官方的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屬性,這個一定要注意,這是我痛苦了一天得到的結(jié)果,否則getFormValues函數(shù)將得不到表單數(shù)據(jù)。
    b) doSomething($formData)函數(shù)中的參數(shù)$formData是一個數(shù)組元素,索引是表單元素的名稱(屬性name的值),其值是表單元素的值(屬性value的值)
    c) 如果debugon打開了,可能會出現(xiàn)死循環(huán)的警告窗口,目前還不知道原因。
    posted on 2006-09-13 22:25 JRobot 閱讀(482) 評論(0)  編輯  收藏 所屬分類: xml相關(guān)
    主站蜘蛛池模板: 精品久久亚洲中文无码| 亚洲色av性色在线观无码| 亚洲精品美女久久久久久久| 51精品视频免费国产专区| 亚洲AV日韩AV永久无码久久| 久久国产乱子伦精品免费不卡| 亚洲va久久久噜噜噜久久| 日本免费人成网ww555在线 | 一级成人a毛片免费播放| 亚洲VA中文字幕无码一二三区| 久久九九AV免费精品| 亚洲视频免费在线播放| 黄色片在线免费观看| 国产精品久久久久久亚洲小说| 亚洲第一区精品观看| 男人天堂免费视频| 亚洲网红精品大秀在线观看| 成人浮力影院免费看| 亚洲乱妇熟女爽到高潮的片| 哒哒哒免费视频观看在线www | 日本午夜免费福利视频| 成年大片免费高清在线看黄| 亚洲av综合avav中文| 中文字幕无码不卡免费视频| 免费亚洲视频在线观看| 亚洲成av人在线视| 桃子视频在线观看高清免费完整| 亚洲av永久无码天堂网| 精品国产亚洲一区二区在线观看 | 直接进入免费看黄的网站| 最新精品亚洲成a人在线观看| 久久99精品国产免费观看| 456亚洲人成影院在线观| 亚洲午夜av影院| 国产91色综合久久免费分享| 午夜亚洲国产理论片二级港台二级| 久久久久噜噜噜亚洲熟女综合| h视频在线观看免费完整版| 色噜噜噜噜亚洲第一| 亚洲av日韩av天堂影片精品| 在线免费观看毛片网站|