在PHP中使用ASP.NET AJAX

來源:互聯網
上載者:User

藉助於CodePlex上開源項目PHP for Microsoft AJAX Library的協助,我們已經可以在PHP上使用ASP.NET AJAX的很多核心功能了。

 

下載安裝

PHP for Microsoft AJAX Library目前僅僅處於Alpha階段,想實際使用似乎還早了點,只能嘗鮮了。

預先需求有PHP 5.2版本,且必須安裝了php-json模組。

:http://www.codeplex.com/phpmsajax/Release/ProjectReleases.aspx?ReleaseId=1692

安裝方法:

  1. 下載PHP for Microsoft AJAX Library並解壓縮
  2. 下載Microsoft AJAX Library(http://ajax.asp.net)
  3. 在PHP Web Service代碼中include一下MSAjaxService.php。
  4. 在調用該Web Service的頁面中,引入MicrosoftAjax.js檔案。

下面來看一個“經典”的情境:調用伺服器端方法取得複雜類型。

 

編寫Service檔案

建立一個php檔案,命名為EmployeeService.php。首先寫上這一句,include必要的支援代碼:

require_once 'MSAjaxService.php';

 

然後定義一個Employee類。四個屬性一目瞭然,不用多說:

class Employee
{
    public $Id;
    public $Name;
    public $Email;
    public $Salary;
 
    function __construct($id, $name, $email, $salary)
    {
        $this->Id = $id;
        $this->Name = $name;
        $this->Email = $email;
        $this->Salary= $salary;
    }
}

 

接下來是EmployeeService類,繼承於MSAjaxService.php中的MSAjaxService基類。其中定義一個方法,用來返回一個Employee對象:

class EmployeeService extends MSAjaxService
{
    function GetEmployee()
    {
        return new Employee(12345, "Dflying Chen", "Dflying@some.com", 1000);
    }
}

 

然後建立一個EmployeeService的執行個體,並且調用基類的ProcessRequest()方法,處理該請求:

$theService = new EmployeeService();
$theService->ProcessRequest();

 

大功告成!

 

編寫調用頁面

建立一個頁面,php或者html均可——程式比較簡單。這回我們沒了ScriptManager的協助,引入ASP.NET AJAX用戶端指令碼檔案以及上面的這個Service只能靠手工了。注意EmployeeService.php/js可以得到該Service的用戶端代理,和ASP.NET平台上的文法一樣:

<head>
    <title>ASP.NET AJAX On PHP Demo</title>
    <script type="text/javascript" src="MicrosoftAjaxLibrary/MicrosoftAjax.js"></script>
    <script type="text/javascript" src="EmployeeService.php/js"></script>
</head>

 

程式的UI部分很簡單,按鈕用來觸發非同步呼叫,<div />用來顯示調用結果:

<body>
    <input id="btnGetEmployee" type="button" 
        value="Get an Employee" onclick="return btnGetEmployee_onclick()" />
    <div id="resultDiv">
    </div>
</body>

 

在該按鈕的click事件處理函數中,調用該Service,文法也和ASP.NET AJAX中一致,非常方便:

function btnGetEmployee_onclick()
{
    EmployeeService.GetEmployee(onSucceeded);
}

 

在回呼函數中,把得到的Employee對象顯示到resultDiv中:

function onSucceeded(result)
{
    var sb = new Sys.StringBuilder("Server returns an Employee object: <br />");
    sb.append("Id: " + result.Id + "<br />");
    sb.append("Name: " + result.Name + "<br />");
    sb.append("Email: " + result.Email + "<br />");
    sb.append("Salary: " + result.Salary + "<br />");
 
    $get("resultDiv").innerHTML = sb.toString();
}

 

大功告成!

 

樣本程式介面

第一次訪問

 

點擊Get an Employee按鈕後

 

樣本程式碼下載

在這裡呢:ASPNETAJAXOnPHP.zip

 

好一陣子沒用PHP了,生疏了不少。不過照貓畫虎還是做出來了,這個項目我覺得非常有前途,各位朋友不妨參與一下。這一段比較忙,沒寫什麼技術文章,這一篇也是草草而為,請朋友們見諒。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.