2012-04-25 8 views
1

これが既に回答済み/非常に基本的な場合/疑問が間違っている場合、私はこれを非常に熟知しており、苦労しています。URLからパラメータをFlex HttpServiceからPHPに送信する方法

私は基本的にXMLを生成するバックエンドPHPを持っており、フラッシュビルダーはデータを継承します。どこでフラッシュビルダーのHTTPService例えば

を通じてPHPにパラメータを送ることができる方法を理解されてこだわっている。これは、それが現在の解釈です:

http://..../file.php?action=getitems 

何がある送信するためにフラッシュビルダーを希望

&class=fruit (<- the class would be dependant on what is selected from the drop down in the application) 

全体の

http://..../file.php?action=getitems&class=fruit 

感謝よ、この文字列を作成しますもしこれがナンセンスなら、謝罪してください。私はFlash Builder 4を使用しています。

答えて

1

これが行われ... ... Flexで実際に

var service : HTTPService = new HTTPService(); 
service.url = "http://localhost/getData.php"; 
service.method = "POST"; 


var parameters:Object = new Object(); 
parameters["action"] = "getitems"; 
parameters["class"] = "fruit"; 

service.send(parameters); 

かなり単純です!

1

全体的に、私は変数を渡す代わりにpushメソッドを使用し、途中からハッキングされる機会を少なくします。 HTTP呼び出しのための

私のAS3コード:あなたが真ん中に向かって見

public function someRequest() : void 
    { 
     var service : HTTPService = new HTTPService(); 
     service.url = "http://localhost/getData.php"; 
     service.useProxy = false; 
     service.method = "POST"; 
     service.contentType = "application/xml"; // Pass XML data. 
     service.request = "<ID>somevalue</ID>";  // The XML data. 
     service.resultFormat = "xml";    // Recieve XML data. 
     service.addEventListener(ResultEvent.RESULT, createFields); 
     service.addEventListener(FaultEvent.FAULT, handleFault); 
     service.send(); 
    } 

    private function createFields(event : ResultEvent) : void 
    { 
     var result : String = event.result.toString(); 
     returnData = XML(result); 
    } 

    private function handleFault(event : FaultEvent) : void 
    { 
     var faultstring : String = event.fault.faultString; 
     Alert.show(faultstring); 
    } 

として、変数を入力するためのXMLスペースがあります。このアプローチを使用して、PHPからAS3にデータを渡します。

PHPは次のとおりです。あなたの方法であなたを助け

<?php 

define("DATABASE_SERVER", "localhost"); 
define("DATABASE_USERNAME", "root"); 
define("DATABASE_PASSWORD", "**"); 
define("DATABASE_NAME", "dbName"); 

//connect to the database. 
$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD); 

mysql_select_db(DATABASE_NAME); 

$Query = "SELECT * from data WHERE employeeID = '" . ($_POST['ID']) . "'"; 
$Result = mysql_query($Query); 

$Return = "<data>"; 

while ($User = mysql_fetch_object($Result)) 
{ 
    $Return .= "<user><userid>" . $User->userid . "</userid><username>" . $User->username . "</username><emailaddress>" . $User->emailaddress . "</emailaddress></user>"; 
} 
$Return .= "</data>"; 
mysql_free_result($Result); 
print ($Return) 
?> 

希望。

+0

PHPの例で渡されたデータをどこで/どのように参照しているのかわかりません。 –

+0

AS3コードでは、 – powelljf3

+0

があることに注意してください.AS3とXMLデータをやりとりするために使用される3行のコードにコメントを追加しました。それらは.contentType、.request、.resultFormatの各行です。 mySQLがきちんと動作するようにXMLで作業するのは簡単ですが、あなたが選択したデータフォーマットで動作するように、これらの行の記述子を変更することができます。 – powelljf3

1

私は一般的に[POST]ではなく[GET]あなたのActionScript関数で

のを介してこれを処理します。

private function sendRequest():void { 
var obj:Object = new Object(); 
obj.action="getitems"; 
obj.class="fruit"; 

myService.send(obj); 

あなたのHTTPService

<s:HTTPService id='myService' url='urlToYourPHP' method='POST' result='yourResultHandler' fault='yourFaultHandler' resultFormat='XML'/> 

powelljf3が言ったように、POSTがより安全ですまだそれを得ることができるが、GET。

+0

私の編集に以下を追加しましたが、ここにそれを追加してください。 "私が投稿した前にすべての解答を読んでいるはずです。Sam DeHaan私はあなたがobj.paramater vice obj ['paramater']を必要としていると確信しています。それを試みたことはありません。 – Dom

+0

ほとんどの場合、あなたはうまくいくはずです。私はキーワードであるので、 'クラス'の使用に心配していたので、私はむしろ安全であると思って、私が示したようにしました。 –

+0

あなたは正しいです。私はちょうどobj.classを試して、Flexは不平を言った。 – Dom

関連する問題