如何从Flash Builder 4.6发布变量并在PHP中获取结果?有任何想法吗?

时间:2012-04-29 17:17:45

标签: php sql post flash-builder

我对Flash Builder很陌生,但我已经在网上和这里阅读了一些文章,这是一个我似乎无法解决的问题。

在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
    

  4. 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']似乎没有获取数据。对不起它看了很多但我真的不知道我哪里出错了。

    非常感谢任何帮助,谢谢。

    蒂姆

1 个答案:

答案 0 :(得分: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);