Hi,
This may be a formatting thing with how you post arrays and my
answer may need revising:
Look in the PHP manual for "Variables from outside PHP" and see that
you can post arrays from HTML forms, by having the fields named as an
array..
so my original code below is a bit wrong, sorry.
The loop will have to build the pseudo array for each text var
object so you can post "textVars[0][a]=0&textVars[0][b]=1", etc.:
setVars = new Object();
textVars[0] = {
a :"0",
b :"1",
c :"2"
};
textVars[1] = {
d :"3",
e :"4",
f :"5"
};
var numVars:int = textVars.length;
for(var i:int = 0;i < numVars;i++)
{
var obj:Object = textVars[i];
for (var itm:String in obj)
{
trace(itm + " = " + obj[itm]);
//check the quotes and braces carefully, but basically you want to end up
with setVars.textVars[0][a] = "0", etc
setVars["textVars[" + i + "][" + itm + "]"] = obj[itm];
}
}
I think that may fix it...
You probably also want to make sure your PHP script is behaving by temporarily changing
"$_POST" to "$_REQUEST" then writing a manual query string as above...
HTH
Glen
SJM - Flash wrote:
Hey Glen thanks for your speedy response its much appriciated! Ive tried the
code you provided but am still getting the same output.
var textVars = new Array();
textVars[0] = {
a :"0",
b :"1",
c :"2"
};
textVars[1] = {
d :"3",
e :"4",
f :"5"
};
var numVars:int = textVars.length;
for(var i:int = 0;i < numVars;i++)
{
var obj:Object = textVars[i];
for (var itm:String in obj)
{
trace(itm + " = " + obj[itm]);
textVars[i][itm] = obj[itm];
}
}
var sendRequest:URLRequest = new URLRequest("process.php");
var setVars:URLVariables = new URLVariables();
setVars.textVars = textVars;
sendRequest.data = setVars;
sendRequest.method = URLRequestMethod.POST;
sendToURL(sendRequest);
Basically we are trying to output a $_POST array that is formated similar to
below...
Array
(
[textVars] => Array
(
[0] => Array
(
[a] => 0
[b] => 1
[c] => 2
)
[1] => Array
(
[d] => 3
[e] => 4
[f] => 5
)
)
)
instead we are getting:
Array
(
[textVars] => [object Object]
)
Thanks
SM
----- Original Message -----
From: Glen Pike
To: Flash Coders List
Sent: Tuesday, April 29, 2008 1:43 PM
Subject: Re: [Flashcoders] (AS3) Object to an Array
Hi,
You could create a loop to look through each object and then make up
your arrays a bit like this - untested:
sendVars.textVars = new Array();
var numVars:int = textVars.length;
for(var i:int = 0;i < numVars;i++) {
var obj:Object = textVars[i];
for(item:String in obj) {
trace(itm + " = " + obj[itm]);
sendVars.textVars[i][itm] = obj[itm];
}
}
//then send your data...
SWXFormat handles this sort of thing quite nicely, but they were
still working on AS3 when I last looked.
HTH
Glen
SJM - Flash wrote:
> Hi Guys
>
> Im in need of finding out how or even if its possible to convert an object
to an array?
>
> Basically I am trying to output some vars from flash to an PHP script, yet
when PHP recieves the $_POST['textVars'] as [object Object] which is a string and
not an array so I can't access it with $_POST['textVars'][0]['x'], which should
output the value of textBox1.x.
>
> var textVars:Object = new Object;
>
> textVars[0] = {
> x :textBox1.x,
> y :textBox1.y,
> width :textBox1.width,
> height :textBox1.height,
> rotation :textBox1.rotation
> };
>
> textVars[1] = {
> x :textBox2.x,
> y :textBox2.y,
> width :textBox2.width,
> height :textBox2.height,
> rotation :textBox2.rotation
> };
>
> sendVars.textVars = textVars;
>
> sendRequest.data = setVars;
> sendRequest.url = "process.php";
> sendRequest.method = URLRequestMethod.POST;
> sendToURL(sendRequest);
>
> Thanks
> SM
> _______________________________________________
> Flashcoders mailing list
> [email protected]
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
>
>
--
Glen Pike
01326 218440
www.glenpike.co.uk <http://www.glenpike.co.uk>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
--
Glen Pike
01326 218440
www.glenpike.co.uk <http://www.glenpike.co.uk>
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders