<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在线观看播放| 色妞www精品视频免费看| www国产亚洲精品久久久| 国产在亚洲线视频观看| 免费国产在线观看不卡| 乱爱性全过程免费视频| 久久久久一级精品亚洲国产成人综合AV区| 亚洲AV无码一区二区三区电影| 午夜视频在线观看免费完整版| 亚洲日韩精品A∨片无码加勒比| 女人18毛片水真多免费看| 亚洲人成网站18禁止| 国产成人免费a在线视频app| 美女扒开尿口给男人爽免费视频 | 免费在线人人电影网| 免费在线观看理论片| 国产在线观看免费av站| 亚洲成人在线电影| 亚色九九九全国免费视频| 亚洲AV电影天堂男人的天堂| 亚洲综合久久夜AV | 久久99精品免费视频| 久久精品国产亚洲αv忘忧草| 在线观看免费污视频| 美女被爆羞羞网站免费| 亚洲熟女一区二区三区| 97青青草原国产免费观看| 日本亚洲色大成网站www久久 | 国产成人精品日本亚洲网站 | 热99re久久精品精品免费| 免费无码午夜福利片69| 亚洲AV日韩AV天堂一区二区三区 | 91福利视频免费| 亚洲高清一区二区三区电影| 亚洲综合色自拍一区| 男人的好看免费观看在线视频| 免费福利资源站在线视频| 久久精品国产亚洲AV高清热|