首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > flex >

flex Httpservice 访问php 参数替null

2012-12-29 
flex Httpservice 访问php 参数为null看cookbook到了数据访问。开始便给出了Httpservice示例,我按着书中所

flex Httpservice 访问php 参数为null
看cookbook到了数据访问。开始便给出了Httpservice示例,我按着书中所说布置了工程,把代码copy到工程里:
这是flex的代码:


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:HTTPService url="http://localhost:18000/index.php"
id="service"
result="serviceResult(event)" fault="serviceFault(event)"
method="GET" contentType="application/xml"
useProxy="false">
<mx:request xmlns="">
<id>{requestedId}</id>
</mx:request>
</mx:HTTPService>
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;

[Bindable]
private var requestedId:String;

//trace the result of the service out
private function serviceResult(event:Event):void {
trace(service.lastResult.name);
}
// in the event that the service faults or times out
private function serviceFault(event:Event):void {
trace('broken service');
}
private function callService():void {
try{
requestedId = input.text;
service.send();
}catch(e:Error){
Alert.show(e.message);
}
}
]]>
</mx:Script>
<mx:TextInput id="input"/>
<mx:Button label="get user name" click="callService()"/>
<mx:Text text="{service.lastResult.id}"/>
<mx:Text text="{service.lastResult.name}"/>
<mx:Text text="{service.lastResult.age}"/>
</mx:Application>


这是PHP后端代码:

<?php
$id = $_GET["id"];
echo('<id>'.$id.'</id><name>ok</name><age>30</age>');
?>


flex通过localhost:18000访问index.php,同时向php用get形式传送一个key为id的值。实际运行后,flex的确可以访问到index.php,但问题是只能取到echo('<id>'.$id.'</id><name>ok</name><age>30</age>');中的name与age的值,由flex传过去的id为null。
php端通过localhost:18000/index.php?id=111 证明id是可以获取的,无错。
请大家帮忙找找原因,不胜感激!
[解决办法]
至于FLEX传过去的ID没拿到,估计是requestedId 还没拿到值,你可以试试先给这个变量一个值
private var requestedId:String = “test”;
建议你不要用
<mx:request xmlns="">
            <id>{requestedId}</id>
        </mx:request>这种方式,
直接将参数放到send方法里传过去就好了,例如service.send({id: requestedId});
[解决办法]
在send之前改变url也行
直接在URL后面带   ?id=变量  那样稳的传的出去

热点排行