1

これがすでに答えられている/非常に基本的である/質問の言い回しが間違っている場合は、私を許してください。私はこれに非常に慣れておらず、苦労しています。

基本的に、XMLを生成するバックエンドPHPがあり、FlashBuilderがデータを継承します。私が立ち往生しているのは、FlashBuilderがHttpServiceを介してPHPにパラメーターを送信する方法を理解することです。

これは現在解釈されているものです:

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

FlashBuilderに送信してほしいのは

&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

これがナンセンスであるならば、ありがとうと謝罪。FlashBuilder4を使用しています。

4

3 に答える 3

1

私は通常、[GET] ではなく [POST] でこれを処理します。

あなたのアクションスクリプト関数で:

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 よりも安全ですが、それでも取得できます。

于 2012-04-26T10:53:48.923 に答える
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);

... 終わり!

于 2012-04-25T18:30:46.237 に答える
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)
?>

途中で役立つことを願っています。

于 2012-04-25T17:03:09.667 に答える