我对Flash Builder很陌生,但我已经在网上和这里阅读了一些文章,这是一个我似乎无法解决的问题。
在Flash Builder中,我有一个ID为“searchBar”的搜索栏。与搜索栏一起,有一个标有“提交”的按钮。
我的系统是如何工作的:
我已经设置了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>
单击该按钮时,会调用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']似乎没有获取数据。对不起它看了很多但我真的不知道我哪里出错了。
非常感谢任何帮助,谢谢。
蒂姆答案 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);