在PHP中使用ASP.NET AJAX
2007-04-19 00:49
399 查看
借助于CodePlex上开源项目PHPforMicrosoftAJAXLibrary的帮助,我们已经可以在PHP上使用ASP.NETAJAX的很多核心功能了。
下载安装
PHPforMicrosoftAJAXLibrary目前仅仅处于Alpha阶段,想实际使用似乎还早了点,只能尝鲜了。
预先需求有PHP5.2版本,且必须安装了php-json模块。
下载地址:http://www.codeplex.com/phpmsajax/Release/ProjectReleases.aspx?ReleaseId=1692
安装方法:
下载PHPforMicrosoftAJAXLibrary并解压缩
下载MicrosoftAJAXLibrary(http://ajax.asp.net)
在PHPWebService代码中include一下MSAjaxService.php。
在调用该WebService的页面中,引入MicrosoftAjax.js文件。
下面来看一个“经典”的场景:调用服务器端方法取得复杂类型。
编写Service文件
新建一个php文件,命名为EmployeeService.php。首先写上这一句,include必要的支持代码:
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
然后定义一个Employee类。四个属性一目了然,不用多说:
[code]{
[/code]
接下来是EmployeeService类,继承于MSAjaxService.php中的MSAjaxService基类。其中定义一个方法,用来返回一个Employee对象:
[code]{
[/code]
然后新建一个EmployeeService的实例,并且调用基类的ProcessRequest()方法,处理该请求:
[code]$theService->ProcessRequest();
[/code]
大功告成!
编写调用页面
新建一个页面,php或者html均可——程序比较简单。这回我们没了ScriptManager的帮助,引入ASP.NETAJAX客户端脚本文件以及上面的这个Service只能靠手工了。注意EmployeeService.php/js可以得到该Service的客户端代理,和ASP.NET平台上的语法一样:
[code]<title>ASP.NETAJAXOnPHPDemo</title>
[/code]
程序的UI部分很简单,按钮用来触发异步调用,<div/>用来显示调用结果:
[code]<inputid="btnGetEmployee"type="button"
[/code]
在该按钮的click事件处理函数中,调用该Service,语法也和ASP.NETAJAX中一致,非常方便:
[code]{
[/code]
在回调函数中,把得到的Employee对象显示到resultDiv中:
[code]{
[/code]
大功告成!
示例程序界面
第一次访问
点击GetanEmployee按钮后
示例程序代码下载
在这里呢:ASPNETAJAXOnPHP.zip
好一阵子没用PHP了,生疏了不少。不过照猫画虎还是做出来了,这个项目我觉得非常有前途,各位朋友不妨参与一下。这一段比较忙,没写什么技术文章,这一篇也是草草而为,请朋友们见谅。
下载安装
预先需求有PHP5.2版本,且必须安装了
下载地址:
安装方法:
下载PHPforMicrosoftAJAXLibrary并解压缩
下载MicrosoftAJAXLibrary(
在PHPWebService代码中include一下MSAjaxService.php。
在调用该WebService的页面中,引入MicrosoftAjax.js文件。
下面来看一个“经典”的场景:调用服务器端方法取得复杂类型。
编写Service文件
新建一个php文件,命名为EmployeeService.php。首先写上这一句,include必要的支持代码:
require_once'MSAjaxService.php';
.csharpcode,.csharpcodepre
{
font-size:small;
color:black;
font-family:consolas,"CourierNew",courier,monospace;
background-color:#ffffff;
/*white-space:pre;*/
}
.csharpcodepre{margin:0em;}
.csharpcode.rem{color:#008000;}
.csharpcode.kwrd{color:#0000ff;}
.csharpcode.str{color:#006080;}
.csharpcode.op{color:#0000c0;}
.csharpcode.preproc{color:#cc6633;}
.csharpcode.asp{background-color:#ffff00;}
.csharpcode.html{color:#800000;}
.csharpcode.attr{color:#ff0000;}
.csharpcode.alt
{
background-color:#f4f4f4;
width:100%;
margin:0em;
}
.csharpcode.lnum{color:#606060;}
然后定义一个Employee类。四个属性一目了然,不用多说:
classEmployee
[code]{
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;
}
}
[/code]
接下来是EmployeeService类,继承于MSAjaxService.php中的MSAjaxService基类。其中定义一个方法,用来返回一个Employee对象:
classEmployeeServiceextendsMSAjaxService
[code]{
functionGetEmployee()
{
returnnewEmployee(12345,"DflyingChen","Dflying@some.com",1000);
}
}
[/code]
然后新建一个EmployeeService的实例,并且调用基类的ProcessRequest()方法,处理该请求:
$theService=newEmployeeService();
[code]$theService->ProcessRequest();
[/code]
大功告成!
编写调用页面
新建一个页面,php或者html均可——程序比较简单。这回我们没了ScriptManager的帮助,引入ASP.NETAJAX客户端脚本文件以及上面的这个Service只能靠手工了。注意EmployeeService.php/js可以得到该Service的客户端代理,和ASP.NET平台上的语法一样:
<head>
[code]<title>ASP.NETAJAXOnPHPDemo</title>
<scripttype="text/javascript"src="MicrosoftAjaxLibrary/MicrosoftAjax.js"></script>
<scripttype="text/javascript"src="EmployeeService.php/js"></script>
</head>
[/code]
程序的UI部分很简单,按钮用来触发异步调用,<div/>用来显示调用结果:
<body>
[code]<inputid="btnGetEmployee"type="button"
value="GetanEmployee"onclick="returnbtnGetEmployee_onclick()"/>
<divid="resultDiv">
</div>
</body>
[/code]
在该按钮的click事件处理函数中,调用该Service,语法也和ASP.NETAJAX中一致,非常方便:
functionbtnGetEmployee_onclick()
[code]{
EmployeeService.GetEmployee(onSucceeded);
}
[/code]
在回调函数中,把得到的Employee对象显示到resultDiv中:
functiononSucceeded(result)
[code]{
varsb=newSys.StringBuilder("ServerreturnsanEmployeeobject:<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();
}
[/code]
大功告成!
示例程序界面
第一次访问
点击GetanEmployee按钮后
示例程序代码下载
在这里呢:
好一阵子没用PHP了,生疏了不少。不过照猫画虎还是做出来了,这个项目我觉得非常有前途,各位朋友不妨参与一下。这一段比较忙,没写什么技术文章,这一篇也是草草而为,请朋友们见谅。
相关文章推荐
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NETAJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 在PHP中使用ASP.NET AJAX
- 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(9):服务器端和客户端数据类型的自动转换:DataTable和DataSet
- 使用ASP.NET AJAX Control Toolkit中的NoBot控件拒绝垃圾发布程序