<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)
    主站蜘蛛池模板: 114级毛片免费观看| 在线亚洲午夜理论AV大片| 精品无码一区二区三区亚洲桃色| 国产成人精品免费大全| 久爱免费观看在线网站| 亚洲人成在线播放网站| 免费人成在线观看网站| 又黄又爽一线毛片免费观看| 久久久久亚洲精品无码网址色欲| 全免费a级毛片免费**视频| 亚洲大码熟女在线观看| 国产国产成年年人免费看片| 亚洲AV无码男人的天堂| www.亚洲一区| 亚洲成_人网站图片| 99久热只有精品视频免费看| 亚洲精品视频在线看| 亚洲另类无码一区二区三区| 在线a毛片免费视频观看| 337p日本欧洲亚洲大胆人人 | 亚洲电影唐人社一区二区| 中文字幕人成无码免费视频 | 亚洲人成毛片线播放| 24小时免费直播在线观看| 亚洲AV日韩精品久久久久久| 99re在线视频免费观看| 亚洲精品乱码久久久久蜜桃 | 一级毛片免费在线播放| 国产成人免费网站在线观看| 免费精品久久久久久中文字幕| 日产乱码一卡二卡三免费| 亚洲二区在线视频| 国产又长又粗又爽免费视频 | 亚洲一级毛片免费在线观看| 亚洲欧美日韩中文二区| 亚洲日韩在线观看| 免费无码专区毛片高潮喷水| 亚洲s色大片在线观看| 亚洲精品免费观看| 中文有码亚洲制服av片| 在线亚洲97se亚洲综合在线|