Просмотр полной версии : передача данных из флэша
amas mind
26.07.2005, 14:31
У меня есть во флэшке куча мувиков, и их координаты, ширину и высоту необходимо записать в базу.
дело в том что в str может быть большое кол-во переменных
и getUrl строку обрезает.
Пробую так, не работает.
loadVariablesNum("./../../lib_swf/adddrid.php?count="+i+"&mammoth_id=mapimages&addgrid=1&id_mapimages="+id_mapimage+str,0);
//---adddrid.php
include "./../config_db.php";
include "./../config_main.php";
mysql_query("delete from swf_mapimages_rect where id_mapimages='$id_mapimages'");
for($i=0;$i<$count;$i++)
{
mysql_query("insert into swf_mapimages_rect (`id`,`id_mapimages`,`left`,`top`,`right`,`bottom`,`id_object`) VALUES('','$id_mapimages','".$left[$i]."','".$top[$i]."','".$right[$i]."','".$bottom[$i]."','')");
}
Подскажите где ошибка братцы :confused:
System.useCodepage = true;
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.count = i;
sender.mammoth_id = mapimages;
sender.addgrid = 1;
sender.id_mapimages = id_mapimage+str;
sender.sendAndLoad("http://....../adddrid.php", reciever, "POST");
reciever.onData = function(text:String) {
trace(text);
};
amas mind
26.07.2005, 16:05
:rolleyes: не работает.
может потому, что str слишком длинная?
left[0]=353&top[0]=143&right[0]=359.9&&bottom[0]=150.3&&left[1]=234&top[1]=143&right[1]=240.9&&bottom[1]=150.3&&left[2]=407&top[2]=78&right[2]=413.9&&bottom[2]=85.3&&left[3]=355&top[3]=99&right[3]=361.9&&bottom[3]=106.3&&left[4]=261&top[4]=102&right[4]=267.9&&bottom[4]=109.3&&left[5]=176&top[5]=95&right[5]=182.9&&bottom[5]=102.3&&left[6]=115&top[6]=95&right[6]=121.9&&bottom[6]=102.3&
Покажи код как ты воспользовался классом LoadVars.
amas mind
26.07.2005, 16:10
on(release)
{
str="";
i=0;
for (arg in _root)
{
if (typeof _root[arg] == "movieclip"&&_root[arg].p)
{
left=_root[arg].p._x;
top=_root[arg].p._y;
right=_root[arg].p._x+_root[arg].p._width;
bottom=_root[arg].p._y+_root[arg].p._height+1.2;
str=str+"&left["+i+"]="+left+"&"+"top["+i+"]="+top+"&"+"right["+i+"]="+right+"&"+"&bottom["+i+"]="+bottom+"&";
i++;
}
}
System.useCodepage = true;
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.count = i;
sender.mammoth_id = mapimages;
sender.addgrid = 1;
sender.id_mapimages = id_mapimage+str;
sender.sendAndLoad("http://www.mk.amastudio.ru/lib_swf/addgrid.php", reciever, "POST");
reciever.onData = function(text:String) {
trace(text);
};
}
amas mind
26.07.2005, 16:12
Пишу скриптом в базу.
<?
include "./../config_db.php";
include "./../config_main.php";
mysql_query("delete from ".SITE_PREFIX."_swf_mapimages_rect where id_mapimages='$id_mapimages'");
for($i=0;$i<$count;$i++)
{
//echo $left[$i]."<br>";
mysql_query("insert into ".SITE_PREFIX."_swf_mapimages_rect (`id`,`id_mapimages`,`left`,`top`,`right`,`bottom`,`id_object`) VALUES('','$id_mapimages','".$left[$i]."','".$top[$i]."','".$right[$i]."','".$bottom[$i]."','')");
}
?>
а где у тебя не работатет?
запустил твой скрип. в качестве данных взял предыдущий твой пост, так как формировать строку для отсылки мне было не из чего.
все работает, на сервер уходит именно то что посылаю.
amas mind
26.07.2005, 16:28
ну если бы заработало, то в базе бы у меня прописалось
вообще-то я подразумевал, что переменные, которые ты передаешь PHP-скрипту будут ранее проинициализированы!
я не пойму что конкретно ты пытаешься передать.
передаются свойства объекта sender, и окакзываются в PHP в массиве $_POST[]
в обработчике on(release) нужно в качестве свойств объекта sender прописать переменные, которые надо отправить...
Да отправляется у него все. Постом уходит вот это:
id%5Fmapimages=left%5B0%5D%3D353%26top%5B0%5D%3D143%26right%5B0%5D%3D359%2E9%26%26bottom%5B0%5D%3D150%2E3%26%26left%5B1%5D%3D234%26top%5B1%5D%3D143%26 right%5B1%5D%3D240%2E9%26%26bottom%5B1%5D%3D150%2E3%26%26left%5B2%5D%3D407%26top%5B2%5D%3D78%26right%5B2%5D%3D413%2E9%26%26bottom%5B2%5D%3D85%2E3%26%2 6left%5B3%5D%3D355%26top%5B3%5D%3D99%26right%5B3%5D%3D361%2E9%26%26bottom%5B3%5D%3D106%2E3%26%26left%5B4%5D%3D261%26top%5B4%5D%3D102%26right%5B4%5D%3D 267%2E9%26%26bottom%5B4%5D%3D109%2E3%26%26left%5B5%5D%3D176%26top%5B5%5D%3D95%26right%5B5%5D%3D182%2E9%26%26bottom%5B5%5D%3D102%2E3%26%26left%5B6%5D%3 D115%26top%5B6%5D%3D95%26right%5B6%5D%3D121%2E9%26%26bottom%5B6%5D%3D102%2E3%26&addgrid=1&mammoth%5Fid=&count=4
amas mind
26.07.2005, 16:33
А так будет работать, если я напишу
loadVariablesNum("./../../lib_swf/adddrid.php?count="+i+"&mammoth_id=mapimages&addgrid=1&id_mapimages="+id_mapimage+str,0,POST);
а в пхп буду читать из $_POST[] ?
Post не передается в адресной строке.
amas mind
26.07.2005, 16:52
Так это параметр в LoadVarieblesNum/
а в пхп так переменную $count принимать?
$_POST['count']
Проведи эксперимент:
1) во флашнике напиши
System.useCodepage = true;
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.var1 = 1;
sender.var2 = "Привет";
sender.var3 = "Пока";
sender.sendAndLoad("http://www.mk.amastudio.ru/lib_swf/addgrid.php", reciever, "POST");
reciever.onData = function(text:String) {
trace(text);
};
2)в addgrid.php напиши:
<?php
echo 'Пришли переменные:var1='.$_POST['var1'].'var2='.$_POST['var3'].'var3='.$_POST['var3'];
?>
amas mind
26.07.2005, 17:14
http://www.mk.amastudio.ru/lib_swf/exp.swf
а как проверить что он отправил, если он не переходит на страницу?
//---swf
on(release)
{
System.useCodepage = true;
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.var1 = 1;
sender.var2 = "Привет";
sender.var3 = "Пока";
sender.sendAndLoad("http://www.mk.amastudio.ru/lib_swf/addg.php", reciever, "POST");
reciever.onData = function(text:String) {
trace(text);
}
}
//---addg.php
<?php
echo 'Пришли переменные:var1='.$_POST['var1'].'var2='.$_POST['var2'].'var3='.$_POST['var3'];
?>
trace(text); // выведет тебе то, что вернул сервер
Если ты тестишь на хосте скомпиленный свф, то трейс не покажет ничего - вместо него напиши:
_root.createTextField("txt", 0, 50, 50, 300, 20);
_root.txt.text = text;
amas mind
26.07.2005, 17:45
написал, но текст не появился :(
даже текстовое поле не появилось.
Возьми Тут (http://www.simtec.ltd.uk/httpwatch.exe) триал версию (вроде на 30 дней) программы, которая в IE показывает запросы и ответы сервер-клиент, включая Post. Поможет в отладке.
amas mind
27.07.2005, 12:18
Братцы не смог разобратся.
помогите готов даже денежков немного дать.
Задача вот такая перезать одним запросом следующие переменные в php скрипт , и вывести все переменные на экран:
count=50&mammoth_id=mapimages&addgrid=1&id_mapimages=53&left[0]=210&top[0]=166&right[0]=216.9&&bottom[0]=173.3&&left[1]=185&top[1]=164&right[1]=191.9&&bottom[1]=171.3&&left[2]=166&top[2]=163&right[2]=172.9&&bottom[2]=170.3&&left[3]=141&top[3]=163&right[3]=147.9&&bottom[3]=170.3&&left[4]=122&top[4]=161&right[4]=128.9&&bottom[4]=168.3&&left[5]=111&top[5]=161&right[5]=117.9&&bottom[5]=168.3&&left[6]=91&top[6]=160&right[6]=97.9&&bottom[6]=167.3&&left[7]=79&top[7]=162&right[7]=85.9&&bottom[7]=169.3&&left[8]=68&top[8]=163&right[8]=74.9&&bottom[8]=170.3&&left[9]=54&top[9]=162&right[9]=60.9&&bottom[9]=169.3&&left[10]=208&top[10]=146&right[10]=214.9&&bottom[10]=153.3&&left[11]=184&top[11]=149&right[11]=190.9&&bottom[11]=156.3&&left[12]=163&top[12]=145&right[12]=169.9&&bottom[12]=152.3&&left[13]=149&top[13]=145&right[13]=155.9&&bottom[13]=152.3&&left[14]=126&top[14]=144&right[14]=132.9&&bottom[14]=151.3&&left[15]=112&top[15]=146&right[15]=118.9&&bottom[15]=153.3&&left[16]=106&top[16]=146&right[16]=112.9&&bottom[16]=153.3&&left[17]=94&top[17]=146&right[17]=100.9&&bottom[17]=153.3&&left[18]=76&top[18]=146&right[18]=82.9&&bottom[18]=153.3&&left[19]=53&top[19]=146&right[19]=59.9&&bottom[19]=153.3&&left[20]=204&top[20]=132&right[20]=210.9&&bottom[20]=139.3&&left[21]=182&top[21]=131&right[21]=188.9&&bottom[21]=138.3&&left[22]=162&top[22]=131&right[22]=168.9&&bottom[22]=138.3&&left[23]=152&top[23]=132&right[23]=158.9&&bottom[23]=139.3&&left[24]=136&top[24]=130&right[24]=142.9&&bottom[24]=137.3&&left[25]=118&top[25]=131&right[25]=124.9&&bottom[25]=138.3&&left[26]=97&top[26]=130&right[26]=103.9&&bottom[26]=137.3&&left[27]=80&top[27]=130&right[27]=86.9&&bottom[27]=137.3&&left[28]=67&top[28]=131&right[28]=73.9&&bottom[28]=138.3&&left[29]=53&top[29]=130&right[29]=59.9&&bottom[29]=137.3&&left[30]=212&top[30]=114&right[30]=218.9&&bottom[30]=121.3&&left[31]=193&top[31]=113&right[31]=199.9&&bottom[31]=120.3&&left[32]=177&top[32]=113&right[32]=183.9&&bottom[32]=120.3&&left[33]=162&top[33]=113&right[33]=168.9&&bottom[33]=120.3&&left[34]=149&top[34]=115&right[34]=155.9&&bottom[34]=122.3&&left[35]=127&top[35]=114&right[35]=133.9&&bottom[35]=121.3&&left[36]=104&top[36]=115&right[36]=110.9&&bottom[36]=122.3&&left[37]=85&top[37]=114&right[37]=91.9&&bottom[37]=121.3&&left[38]=70&top[38]=114&right[38]=76.9&&bottom[38]=121.3&&left[39]=52&top[39]=115&right[39]=58.9&&bottom[39]=122.3&&left[40]=209&top[40]=97&right[40]=215.9&&bottom[40]=104.3&&left[41]=194&top[41]=97&right[41]=200.9&&bottom[41]=104.3&&left[42]=181&top[42]=97&right[42]=187.9&&bottom[42]=104.3&&left[43]=166&top[43]=97&right[43]=172.9&&bottom[43]=104.3&&left[44]=153&top[44]=97&right[44]=159.9&&bottom[44]=104.3&&left[45]=132&top[45]=97&right[45]=138.9&&bottom[45]=104.3&&left[46]=111&top[46]=97&right[46]=117.9&&bottom[46]=104.3&&left[47]=87&top[47]=97&right[47]=93.9&&bottom[47]=104.3&&left[48]=67&top[48]=97&right[48]=73.9&&bottom[48]=104.3&&left[49]=54&top[49]=98&right[49]=60.9&&bottom[49]=105.3&
У меня это работает (http://www.inils.ru/www.zip)
amas mind
27.07.2005, 13:35
2 iNils а ты где работаешь?
2 iNils а ты где работаешь?
В смысле где?
amas mind
27.07.2005, 13:38
в смысле в каком городе, все ли устраивает...
У меня работает то что я писал раньше:
//send.fla
System.useCodepage = true;
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.var1 = 1;
sender.var2 = "Привет";
sender.var3 = "Пока";
sender.sendAndLoad("adddrid.php", reciever, "POST");
reciever.onData = function(text:String) {
_root.createTextField("txt", 0, 50, 50, 300, 20);
_root.txt.text = text;
}
//adddrid.php
<?php
echo 'Пришли переменные:var1='.$_POST['var1'].' var2='.$_POST['var3'].' var3='.$_POST['var3'];
?>
Ссылка, где можно посмотреть (http://peresvet.kharkov.com/index.html)
amas mind
27.07.2005, 16:06
2 Neo.
Слушай а у тебя как с работой?
вот еще вопросик
2 iNils
ты в пхп выводишь сразу все элементы массива
echo $_POST['left']."\n";
а как в таком случае вывести нулевой?
amas mind
27.07.2005, 16:09
вот так грамотно будет?
$lleft=split(",",$_POST['left']);
for($i=0;$i<30;$i++)
echo $lleft[$i]."<br>";
если работает, то почему нет? :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.