Просмотр полной версии : loadVariables + POST + PHP
Пытаюсь передавать переменные из ролика php скрипту и получать ответ, делая var_dump($_POST) заметил, что передаются все переменные, кот. существуют в текущем клипе.
Возможно ли в 5 флеше передавать методом POST только те переменные, которые нужно, а не всё подряд ? Как это сделать по-человечески ? И как правильно потом принять переменные, то есть получить ответ, так как сейчас этот ответ как бы автоматически приходит ?
Передаю вот так:
loadVariables(_root.scriptName + "?" + myVars, this, "POST");
sendAndLoad попробуй
http://www.flasher.ru/tutorial/viewtut.php?id=135
тут описано более подробно, правда, там еще и привязка к MySQL, но ты используй что тебе нужно. Мне лично когда-то этот урок помог, может и тебе пригодится.
Спасибо, делаю так:
в первом кадре ролика:
chaptersList = new Array();
getChaptersList();
function getChaptersList ()
{
Chapters = new LoadVars();
Chapters.action = 'getChaptersList';
Chapters.sendAndLoad(_root.scriptName, Chapters, 'POST');
Chapters.onLoad = function (success)
{
if (success)
{
this.chaptersList = unescape(this.chaptersList);
this.chaptersList = this.chaptersList.split('|');
for (i=0; i < this.chaptersList.length; i++)
{
_root.chaptersList[i] = this.chaptersList[i].split(',');
}
}
}
}
Данные приходят, но когда ролик переходит во второй кадр я массива _root.chaptersList еще не вижу, и понятно почему, потому, что данные еще не пришли. То есть еще не отработало событые onLoad.
Вопрос: Как сделать так, чтобы переход во второй кадр происходил только в том случае, если данные уже все получены ? Или может быть есть более красивые решения ?
Chapters.onLoad=fff
fff-имя функции которая что-то делает с полученными данными и не надо во 2 кадр переходить, я во всяком случае именно так делал
я не совсем врубаюсь, как должна выглядеть эта функция, а главное как убедиться, что всё пришло и данные готовы, не мог бы ты привести пример ?
Chapter.onLoad=fff
function fff()
{
юзаем полученные данные(как?-это тебе виднее)
}
Функция будет вызвана, когда данные получены.
Пушистик
11.12.2003, 17:56
флэш передает ВСЕ перменные...абсолютно все!.....;)
sergsa
К сожалению это мне не помогло. Событие onClipEvent (load) мувиклипа, который должен работать с пришедшими данными, происходит до того, как данные пришли и были обработаны.
при трейсе последовательность выглядит так:
- before getChaptersList
- inside getChaptersList
- movie loaded
- inside makeChaptersArray
Вот код 1 кадра:
chaptersList = new Array();
function getChaptersList ()
{
trace ("inside getChaptersList");
Chapters = new LoadVars();
Chapters.action = 'getChaptersList';
Chapters.sendAndLoad(_root.scriptName, Chapters, 'POST');
Chapters.onLoad = makeChaptersArray;
}
function makeChaptersArray ()
{
trace ("inside makeChaptersArray");
this.chaptersList = unescape(this.chaptersList);
this.chaptersList = this.chaptersList.split('|');
for (i=0; i < this.chaptersList.length; i++)
{
_root.chaptersList[i] = this.chaptersList[i].split(',');
}
}
trace ("before getChaptersList");
getChaptersList ();
stop();
function makeChaptersArray () - это и есть та ф-ция, которая выполняется когда данные получены, вставь сюда код который их обрабатывает и все. Или если хочеш, что-бы данные обрабатывались во 2-м кадре, останови этот ролик на первом а в тело ф-ции makeChaptersArray () вставь gotoAndStop(2)
Ура!
Ёлы палы :)
В первом кадре ставим стоп, берем от скрипта данные, обрабатываем их и добавляем в функцию обработки gotoAndPlay(2);
Во втором кадре тоже ставим стоп и размещаем мувик, который будет работать с данными.
Заработало!
Биг сенкс! :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.