Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Передача массива в качестве параметра при вызове send() (http://www.flasher.ru/forum/showthread.php?t=142844)

GырыDемон 01.08.2010 17:41

Передача массива в качестве параметра при вызове send()
 
Есть ArrayCollection в которой храниться информации из таблицы. Как эту коллекцию передать в качестве параметра у HTTPService при вызове send().
Этот массив будет передан jsp, которая его уже должна будет обработать.

wvxvw 01.08.2010 18:09

HTTPService не сериализует данные.
ArrayCollection можно сериализовать, но см. п. 1.
Из чего следует, что:
- Может не нужно использовать ArrayCollection, а что-нибудь по-проще, строку, например?
- Может не нужно использовать HTTPService, а RemoteObject (а еще лучше NetConnection), например?
Есть еще варианты.

GырыDемон 01.08.2010 18:17

- Может не нужно использовать ArrayCollection, а что-нибудь по-проще, строку, например?
Записать все элементы в строку и передать ее?
Как это можно хорошо реализовать? Просто написать парсер у принмающий стороны для разбора?

Astraport 02.08.2010 00:19

Не знаю как на jsp, на PHP недавно делал так.
1. Во флексе педаем массив в строку:
Код AS3:

var myString:String = myArray.join();

2. Передаем этот параметр с помощью HTTPService:
Код AS3:

<s:HTTPService id="myService" result="myService_resultHandler(event)" 
                                          fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"
                                          url="http://localhost/dir/send.php" method="POST">
                        <s:request xmlns="">
                                <myString>
                                        {myString}
                                </myString>
 
                        </s:request>
                </s:HTTPService>

3. В файле send.php собираем массив:

PHP код:

$str$_POST["myString"];
$myArray = array();
$myArray explode "," $str); 


Dimitry_II 02.08.2010 02:39

А я подключал JSON к флешу - конечно, лишние классы, но зато унифицированно и освобождает от ручной работы.

PainKiller 17.01.2014 17:46

Тоже столкнулся с этим вопросом и самое простое решение которое я нашел:
Код AS3:

var urlVar:URLVariables = new URLVariables();
 
urlVar["brand[]"] = makeBrands(); //тут функция возвращает массив для отправки на сервер
 
myService.url ="http://somedoman.com/search.php";
myService.method = "POST";
myService.addEventListener(ResultEvent.RESULT, onSendData);
myService.send(urlVar);

В итоге на сервер отправляется запрос вида http://somedoman.com/search.php?brand[]=31&brand[]=32
и все в шоколаде :-)


Часовой пояс GMT +4, время: 03:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.