Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   отправка post на php , формирование xml, получение сформировавшейся xml. (http://www.flasher.ru/forum/showthread.php?t=183238)

planetary 16.08.2012 01:29

отправка post на php , формирование xml, получение сформировавшейся xml.
 
Доброго времени суток, помогите пожалуйста с проблемой, уже везде обыскал...
В Action скрипте отправляю Post запрос в файл php, там проверяется. если пост запрос был, формируется xml на этой же странице php. Как в Action Скрипте тут же получить xml?
Пробую вот так - не получается.
Код AS3:

postIt ();
//отправление данных на скрипт
function postIt ():void
{
        var loader:URLLoader = new URLLoader();
        var req:URLRequest = new URLRequest('http://sait.ru/set_bd.php');
        var vars:URLVariables = new URLVariables();
        req.method = URLRequestMethod.POST;
        vars['name'] = 'planetary';
        req.data = vars;
        loader.load (req);
        loader.addEventListener (Event.COMPLETE, onSended);
        trace ('Post отправлен');
}
// запуск функции .которая загружает XML
function onSended (e:Event):void
{
        trace ('ok');
        loadIt ();
}
//Загрузка ХМЛ
function loadIt ():void
{
        var loader:URLLoader=new URLLoader();
        loader.load (new URLRequest('http://sait.ru/set_bd.php'));
        loader.addEventListener (Event.COMPLETE,onLoadComplete);
        trace ('Файл загаружен');
}
// По завершению загрузки вывести данные
function onLoadComplete (e:Event):void
{
                var xml:XML = new XML(e.target.data);
trace (xml);
 
        trace ('ХМЛ получен');
}

PHP файл:
PHP код:

<?php
if (isset($_POST[name])){
echo 
"<?xml version='1.0' encoding='UTF-8' ?>";
echo 
"<response>";
echo 
"<block>";
echo 
"<name>Tut name</name>";
echo 
"</block>";
echo 
"</response>";
}
?>

Помогите пожалуйста

MINASTIS 16.08.2012 01:41

Я могу ошибаться, но не проще создавать новую xml файл с помощью php, и после уже получать из него информацию?

planetary 16.08.2012 01:45

Благодарб за ответ. Извините, может я не вкурсе, а как её создать? И я расчитываю сделать игру. Тоесть будет потом сто тысяч xml файлов?

maxkar 16.08.2012 01:52

Сразу на первый лоадер вешайте обработчик onLoadComplete. Зачем там еще один запрос делать?

planetary 16.08.2012 02:11

Цитата:

Сообщение от maxkar (Сообщение 1092420)
Сразу на первый лоадер вешайте обработчик onLoadComplete. Зачем там еще один запрос делать?

Подскажите пожалуйста, как это сделать. Исправьте код, иначе я не пойму.

Добавлено через 7 минут
Делаю так:
Код AS3:

postIt ();
//отправление данных на скрипт
function postIt ():void
{
        var loader:URLLoader = new URLLoader();
        var req:URLRequest = new URLRequest('http://online-fishing.ru/modules/mod_igra/set_bd.php');
        var vars:URLVariables = new URLVariables();
        req.method = URLRequestMethod.POST;
        vars['name'] = 'planetary';
        req.data = vars;
        loader.load (req);
        loader.addEventListener (Event.COMPLETE, onLoadComplete);
        trace ('Post отправлен');
 
}
//вывести XML
function onLoadComplete (e:Event):void
{
                var xml:XML = new XML(e.target.data);
trace (xml);
 
        trace ('ХМЛ получен');
}

Пишет ошибку "TypeError: Error #1088: Разметка в документе, следующим за корневым элементом, должна быть в правильном формате.
at game_fla::MainTimeline/onLoadComplete()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()"

-De- 16.08.2012 02:36

Неправильный xml отдается. Трейсьте e.target.data до попытки создания xml и думайте (ну или сюда можно кинуть), почему он не валидный.

planetary 16.08.2012 12:25

всмысле? Как это сделать? Измените пожалуйста код. Я плохо знаю actionscript

-De- 16.08.2012 12:39

Код AS3:

function onLoadComplete (e:Event):void
{
                //var xml:XML = new XML(e.target.data);
trace (e.target.data);
 
        trace ('ХМЛ получен');
}


planetary 16.08.2012 12:43

выдаёт
<?xml version='1.0' encoding='UTF-8' ?><response><block><name>Tut name</name></block></response>
посути так и должно быть.

Krusty 16.08.2012 12:50

данный xml является валидным.
Код:

<?xml version='1.0' encoding='UTF-8' ?><response><block><name>Tut name</name></block></response>
Если ругается-значит, не то приходит.
http://www.w3schools.com/dom/dom_validate.asp
Валидаторов в сети много
попробуйте то же самое с урлом сделать, а не с текстом.

planetary 16.08.2012 13:18

Что значит валидный и как это исправить?

Krusty 16.08.2012 13:36

Валидный значит правильный. Невалидный значит неправильный.
А парсер сторонний вам гораздо точнее скажет, что у вас за ошибка и где.

-De- 16.08.2012 13:48

Вообще-то, он похож на правильный (валидный от valid). Могут быть невидимые символы или флэшу не нравится <?xml version='1.0' encoding='UTF-8' ?> или там не utf8. Ну и мож ещё что %)

planetary 16.08.2012 13:49

пишет, что ошибок нет. В чём прикол?

Добавлено через 18 минут
я проверяю на локальном хостинге, файл с action находится не в корневой папке сайта, а на другом диске. Это не считается ошибкой?

Krusty 16.08.2012 14:17

Т.е. вы дали внешнему валидатору ваш урл, ему отдался xml файл и валидатор выдал, что ваш файл-корректный?

planetary 16.08.2012 14:39

нет, я написал в валидатор ХМЛ код. Он сказал, что всё гуд


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

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