PDA

Просмотр полной версии : sendAndLoad, как сформировать url?


Дмитрий.
02.10.2006, 13:47
Использую
sender.sendAndLoad(urls, revers, "post");

Если определяю адрес как
urls = "editor.php?add=&object[type]=2";то все работает.

А если так
_root.parametr1 = _root.parametrtext; //из текст. поля input
urls = "editor.php?add=&object[type]="+_root.parametr1;то не работает.

Может как то тип строки urls нужно переопределить?

То есть вопрос, можно и как для sendAndLoad использовать в качестве url какое либо вычисляемое выражение, чтобы не жестко прописывать адрес в коде?

Nirth
02.10.2006, 14:36
Правила разделов "ActionScript" и "Общие вопросы" > (http://flasher.ru/forum/showthread.php?t=79864)
Каждый должен обрамлять код в своем сообщениями тэгами // Ваш Код .
Чтобы ваш код можно было читать, и просто показать уважение к глазам других форумчан.

Хемуль
02.10.2006, 16:54
2 Дмитрий:
Нет, ваша проблема не в этом... Строку можно формировать динамически...

iNils
02.10.2006, 17:04
А точку между parametr и text вы забыли или ее не было?

Дмитрий.
03.10.2006, 12:40
Точки не было. Если делать trace, то показывает правильную строку.
А что, необходимо поставить точку? С ней не работает.

Дмитрий.
04.10.2006, 11:57
2 Хемуль:
А в чем тогда может быть проблема?

Дмитрий.
05.10.2006, 12:21
Поставим вопрос по другому:
Если так

sender.sendAndLoad("editor.php?add=&object[type]=2", revers, "post");

то все работает.

А если так


sender.sendAndLoad("editor.php?add=&object[type]="+_root.parametr1, revers, "post");


то не работает.
Может скобки какие поставить надо?

etc
05.10.2006, 13:12
Проверь для начала, что у тебя в _root.parametr1 находится.

Дмитрий.
05.10.2006, 13:31
Если проверять

trace(_root.parametr1);

то показывает что надо.

Дмитрий.
05.10.2006, 14:15
Выяснилось следующее:

Если задавать параметр непосредственно
_root.parametr1 = "2";
работает. Но я пытаюсь этот параметр задать через текстовое поле.
Попробовал так
_root.parametr1 = _root.parametrtext.text;
и так
_root.parametr1 = String(_root.parametrtext.text);
ни одно не работает.

fishbounce
05.10.2006, 14:16
а что такое _root.parametrtext.text? это вообще существует, ты проверял?

Дмитрий.
05.10.2006, 15:04
вообщем. все проверял через trace.
После дальнейших проб, выяснилось следующее, что в этом тексте нельзя ставить двоеточие!
То есть если двоеточия нет, то идет обращение на сервер и все работает, а если двоеточие есть, то даже нет обращения. А мне через параметр надо передавать еще один url, типа http://www - то есть двоеточия не избежать.

_root.parametrtext - это текстовое поле, куда вводится текст, в том числе и url некоторый


А если в тексте есть & то он обрезает текст после амперсанда.

Короче все беды оттого, что я делаю не по человечески, а через одно место, то есть все данные хочу передать прямо в URL, не используя обычных способов (потому что не знаю). И видимо не работает оттого что в url не может быть еще одного двоеточия, и амперсанд - тоже типа разделение переменных.

А как задать переменные, чтобы они передались скрипту, адрес которого в sendAndLoad(url ?

iNils
05.10.2006, 15:17
Про амперсанд http://www.flasher.ru/forum/showthread.php?t=85996

Дмитрий.
05.10.2006, 16:57
C %26 работает, то есть не обрезает.
Чем бы еще заменить двоеточие :)

miramax
05.10.2006, 17:07
xml рулит, там таких проблем нет

Дмитрий.
05.10.2006, 17:18
Но я всю тему и развел, потому что через такое обращение к php файлу, я передаю ему данные, чтобы он сформировал XML. Просто сам я не программист, а тот кто делал php не flash'ер.
Двоеточие можно заменить %3A.

Но должно быть решение, без таких проблем, я считаю. Ведь sendAndLoad для того и есть, чтобы передавать данные. Как их нужно готовить для передачи?

iNils
05.10.2006, 17:52
через encode(строка);

etc
05.10.2006, 18:23
C %26 работает, то есть не обрезает.
Чем бы еще заменить двоеточие :)
Замени на %3A
А, пардон, не заметил…

Лучше вообще через XML…

Kikasso
05.10.2006, 22:29
попробуй метод get, может у тебя пробел или перевод строки в текстовом поле.
..оо сорри, не заметил. Попробуй одинарные кавычки.

Дмитрий.
06.10.2006, 13:27
У меня в текстовом поле и пробелы и двоеточия и амперсанды.
Когда я пишу в самом текстовом поле эти коды, типа %26 и %3A, то они нормально заменяются, и все проходит. НО, ведь у меня еще есть и текстовое поле с multiline. То есть перевод строки заменяется на <BR&rt; - то есть потом этот амперсанд надо снова заменять, и тут опять не работает.
2 iNils: encode не нашел, но зато нашел toString (LoadVars.toString method), который вроде должен как раз приводить строку к требуемому виду, без всяких дополнительных замен, еще не тестировал.

2 ___etc Не понимаю, что значит "лучше XML", данные у меня и так в XML хранятся. Я счас пытаюсь, чтобы из flash из можно было изменить, посредством php скрипта, которому в виде url и передаются все параметры, которые необходимо изменить в xml файле.

etc
06.10.2006, 13:31
Я не понимаю, в каком формате ты загружаешь данные во Flash?
Или ты наоборот, посылаешь данные в PHP?

Дмитрий.
06.10.2006, 13:49
загружаю я из xml файла

var my_xml = new XML();
my_xml.load("file.xml");

и загружается прекрасно.
а выгружаю в php, чтобы он изменил этот xml.

etc
06.10.2006, 13:51
И на каком этапе у тебя происходит конвертация?

Дмитрий.
06.10.2006, 13:57
какая конвертация? в xml обратно все собирается в php файле, который берет данные из url.

iNils
06.10.2006, 14:02
2 iNils: encode не нашел, но зато нашел toString (LoadVars.toString method), который вроде должен как раз приводить строку к требуемому виду, без всяких дополнительных замен, еще не тестировал.Сорри. Я каждый раз ESCAPE называю почему-то encode.
http://livedocs.macromedia.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001725.html

etc
06.10.2006, 14:07
какая конвертация? в xml обратно все собирается в php файле, который берет данные из url.
Тогда посылай данные POST-ом. И проблем не будет.

Дмитрий.
06.10.2006, 14:31
escape - вот что надо! Самое то. Сработало.

2 iNils: Спасибо большое!

2 ___etc: а как задавать переменные, чтобы их посылать постом?

etc
06.10.2006, 14:41
http://livedocs.macromedia.com/flash/8/main/00002336.html
http://livedocs.macromedia.com/flash/8/main/00002879.html

Дмитрий.
06.10.2006, 15:50
Спасибо, теперь работает (пока по прежнему get'ом).

Новая проблема что firefox кеширует где то xml и даже если я файл удаляю, а flash его загружает, то firefox ему где выдает этот файл. То есть данные в xml оперативно обновились, но на странице этого нет, даже после перезагрузки.

miramax
06.10.2006, 15:54
Спасибо, теперь работает (пока по прежнему get'ом).

Новая проблема что firefox кеширует где то xml и даже если я файл удаляю, а flash его загружает, то firefox ему где выдает этот файл. То есть данные в xml оперативно обновились, но на странице этого нет, даже после перезагрузки.
Можно использовать POST запросы для получения xml документов, они не кэшируются
Можно использовать в get запросе рандомную переменную
?random=sdaf65sadfg25asdf
Тогда всегда будет грузится "разный" для кэша документ