PDA

Просмотр полной версии : поиск на Action Script


hamstress
24.05.2006, 00:33
Подскажите как делать поиск в базе данных, которая лежит на сервере, и выводить их во флеш. Скажем информация вся выводиться через XML файлы?

Usnul
24.05.2006, 00:46
флеш посылает ключевое слово в пхп, пхп посылает запрос в базу данных, база данных возвращает ответ, пхп генерирует XML с информацией и возвращает её во флеш.

дядя Джо
24.05.2006, 09:55
Еще есть Flash remoting! Флэш напрямую дергает функцию php, которая делает запрос в базу, и возвращает флэшу результат!

etc
24.05.2006, 13:34
Ну не так уж и напрямую. Хотя кажется, что это так.

дядя Джо
30.05.2006, 09:49
Ну не так уж и напрямую. Хотя кажется, что это так.Когда кажется - креститься надо! :mosking:
Само собой, для разных языков переводчик нужон! Remoting - то что надо! Правда оно для серьезных сервисов сделано:
Macromedia Flash MX improves these traditional methods by dramatically increasing the speed and robustness of XML processing and introducing the new LoadVars() method as a replacement for LoadVariables(). But nothing can prepare you for the power of accessing server-side functions, consuming web services or transporting data more easily than before. The addition of Macromedia Flash Remoting provides Macromedia Flash easy access to any code running on a ColdFusion MX or the JRUN 4 Server.
Но и о нас, халявщиках добрые люди позаботились:
You may ask, ”How do I get Macromedia Flash Remoting Components to work with PHP?” Here’s how: You will use another open source project that is gaining ground and popularity, AMFPHP. AMFPHP is an application created in PHP that can connect Macromedia Flash to data, just as Macromedia Flash Remoting does with ColdFusion, .NET, and Java environments.
Ну в результате мы имеем вот такой инструмент:
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
import mx.remoting.PendingCall;
my_Service = new Service( "http://somedomain.com/flashservices/gateway",
null,
"UserData",
null,
null);
var pc:PendingCall = my_Service.getUsers();
pc.responder = new RelayResponder(this,
"handler_GetUsers_result",
"handler_GetUsers_fault");
function handler_GetUsers_result(re:ResultEvent) {
for (var i = 0; i<re.result._items.length; i++) {
for (var prop in re.result._items[i]) {
trace("resultObject["+i+"]."+
prop+" = "+re.result._items[i][prop]);
}
}
}
function handler_GetUsers_fault(fault:FaultEvent) {
mx.remoting.debug.NetDebug.trace({level:"None",
message:"There was a problem: "+fault.fault.faultstring});
}
sevice UserData.php<?php
class UserData
{
function UserData()
{
$this->methodTable = array(
"getUsers" => array(
"description" => "Returns users info from database",
"access" => "remote",
),

);
}

function getUsers()
{
$result= mysql_query('SELECT * FROM users');
return $result;
}

}
?>
Красота!