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

Reply via email to