0

私はFlashBuilderを初めて使用しますが、Webやここでいくつかの記事を読んだことがあります。これは永続的な問題であり、解決できないようです。

Flash Builderには、IDが「searchBar」の検索バーがあります。検索バーに加えて、「送信」というラベルの付いたボタンがあります。

私のシステムの仕組みは次のとおりです。

  1. HTTPサービスを設定しました。

      <s:HTTPService id="searchBookAuthor"
                   url="http://localhost/cm0665-assignment/web/libraryServicePipe.php"
                   result="searchBookAuthor_resultHandler(event)"
                   fault="libraryService_faultHandler(event)"
                   method="POST"
                   >
    
        <s:request xmlns="">
            <searchBar>{searchBar.text}</searchBar>
        </s:request>
    
    </s:HTTPService>
    
  2. ユーザーが検索ボックスに検索語を入力し、[送信]をクリックします
  3. ボタンがクリックされると、click_handlerイベントが呼び出され、ここで変数を作成しました。

     var param:Object = new Object;
                param.action = 'search';
                searchBookAuthor.send(param); // ID of HTTPService
    


3. action ='search'は、PHPサーバー側ファイルのcase関数に関連しています。

私の問題は、ユーザーが入力したデータをPHPで取得する方法がわからないことです。私はこれを持っていますが、動作しません(URLにいくつかのパラメーターを渡してスクリプトをテストしましたが):

$searchValue = $_POST["searchBar"];

                $recset = new T_XMLRecordSet();

                $searchSQL = "select Title, Author from l_stock WHERE Title OR Author LIKE '%$searchValue%'";

                $result = $recset ->getRecordSet($searchSQL, 'book');
                return $result; 

そして、結果は私のデータベース内のすべてのタイトルと著者を返し、$ _POST['searchBar']はデータを取得していないようです。申し訳ありませんが、それを見るのはたくさんありますが、どこが間違っているのか本当にわかりません。

どんな助けでも大歓迎です、ありがとう。

ティム

4

1 に答える 1

1

リクエスト構造を少し編集します。

<s:request xmlns="">
    <searchBar>{searchBar.text}</searchBar>
    <action>search</action>
</s:request>

次に、click_handlerイベントで:

searchBookAuthor.send()

これは機能するはずです。

param*関数に渡すときsend()は、基本的にリクエスト構造を上書きします。つまり、次のようにすることもできます。

var param:Object = new Object;
            param.action = 'search';
            param.searchBar = searchBar.text;
            searchBookAuthor.send(param);
于 2012-04-29T23:53:03.790 に答える