[flexcoders] Flex and PHP Issue. Please help!!!

2008-02-26 Thread Omar Fouad
In my flex application i have a form with some text fields. When I submit
the form an HTTPService.send() methid is called.

mx:HTTPService id=PostUser method=GET
url=http://localhost/Flex/Pastarino/PostUsers.php; useProxy=false
showBusyCursor=true
resultFormat=text result=PostNewUserResponse(event);
/mx:HTTPService

the function is:

public function PostNewUserResponse(event:ResultEvent):void {
PostStatusL.text = String(event.result); // response from
the php to the label in FLEX
}

when the Submit Button Is pressed it calls the following function

public function PostNewUser():void {
var PostArray:Array= new Array();
PostArray = [{
UserName: PostUserNameTF.text,
Password: PostPasswordTF.text,
name: PostNameTF.text,
Position: PostPositionTF.text,
ManageUsers: PostManageUsersCB.selected,
CreateOrders: PostCreateOrdersCB.selected,
CreateDishes: PostCreateDishesCB.selected
}];

var DataToSend:Object = new Object();
var DataString:String = JSON.encode(PostArray);
DataString = escape(DataString);
DataToSend.PostUsers = true;
DataToSend.DataSent = DataString;
PostUser.send(DataToSend);
}

At this point the php code would be:

if(isset($_GET['PostUsers'])) {
  $jsonString = urldecode($_GET['DataSent']);
  $jsonString = str_replace(\\, , $jsonString);
  $data = json_decode($jsonString, true);

  $connection = mysql_connect($URL, $USERNAME, $PASSWORD);
  mysql_select_db($DATABASE) or die('Cannot connect to database. Please Try
Again...');

$query = INSERT INTO Users (name) VALUES ($data['name']); // only the
name field for now...

$result = mysql_query($query, $connection);


But it is not working. I realized that $data['name'] is not getting the name
field from flex.

I also tried adding the values manually in php as in

$query = INSERT INTO Users (name) VALUES ('The Name is here');

and it WORKED!!. So i think the problem is that $data['name'] is not really
retrieving the data from the array decoded by json_decode() (this is really
frustrating me!!)

How should It be?

thanks for the help

-- 
Omar M. Fouad - Digital Emotions
http://www.omarfouad.net

This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege. It should not be copied,
disclosed to, retained or used by, any other party. If you are not an
intended recipient then please promptly delete this e-mail and any
attachment and all copies and inform the sender. Thank you.


Re: [flexcoders] Flex and PHP Issue. Please help!!!

2008-02-26 Thread Ben Marchbanks
Why not submit as a regular POST ?

---snippet-

var params:Object = new Object()

params.UserName =  PostUserNameTF.text

PostUser.send(params).


--Then handle the POST in PHP.---

foreach($_POST AS $key = $values) { ${$key} = $values; }

  $query = INSERT INTO Users (`UserName`) VALUES ('.$UserName.');



Omar Fouad wrote:
 
 
 In my flex application i have a form with some text fields. When I 
 submit the form an HTTPService.send() methid is called.
 
 mx:HTTPService id=PostUser method=GET
 url=http://localhost/Flex/Pastarino/PostUsers.php 
 http://localhost/Flex/Pastarino/PostUsers.php useProxy=false
 showBusyCursor=true
 resultFormat=text result=PostNewUserResponse(event);
 /mx:HTTPService
 
 the function is:
 
 public function PostNewUserResponse(event:ResultEvent):void {
 PostStatusL.text = String(event.result); // response 
 from the php to the label in FLEX
 }
 
 when the Submit Button Is pressed it calls the following function
 
 public function PostNewUser():void {
 var PostArray:Array= new Array();
 PostArray = [{
 UserName: PostUserNameTF.text,
 Password: PostPasswordTF.text,
 name: PostNameTF.text,
 Position: PostPositionTF.text,
 ManageUsers: PostManageUsersCB.selected,
 CreateOrders: PostCreateOrdersCB.selected,
 CreateDishes: PostCreateDishesCB.selected
 }];

 var DataToSend:Object = new Object();
 var DataString:String = JSON.encode(PostArray);
 DataString = escape(DataString);
 DataToSend.PostUsers = true;
 DataToSend.DataSent = DataString;
 PostUser.send(DataToSend);
 }
 
 At this point the php code would be:
 
 if(isset($_GET['PostUsers'])) {
   $jsonString = urldecode($_GET['DataSent']);
   $jsonString = str_replace(\\, , $jsonString);
   $data = json_decode($jsonString, true);

   $connection = mysql_connect($URL, $USERNAME, $PASSWORD);
   mysql_select_db($DATABASE) or die('Cannot connect to database. Please 
 Try Again...');

 $query = INSERT INTO Users (name) VALUES ($data['name']); // only 
 the name field for now...
 
 $result = mysql_query($query, $connection);
 
 
 But it is not working. I realized that $data['name'] is not getting the 
 name field from flex.
 
 I also tried adding the values manually in php as in
 
 $query = INSERT INTO Users (name) VALUES ('The Name is here');
 
 and it WORKED!!. So i think the problem is that $data['name'] is not 
 really retrieving the data from the array decoded by json_decode() (this 
 is really frustrating me!!)
 
 How should It be?
 
 thanks for the help
 
 -- 
 Omar M. Fouad - Digital Emotions
 http://www.omarfouad.net http://www.omarfouad.net
 
 This e-mail and any attachment is for authorised use by the intended 
 recipient(s) only. It may contain proprietary material, confidential 
 information and/or be subject to legal privilege. It should not be 
 copied, disclosed to, retained or used by, any other party. If you are 
 not an intended recipient then please promptly delete this e-mail and 
 any attachment and all copies and inform the sender. Thank you.
 
 

-- 
Ben Marchbanks

::: magazooms :::
digital publishers,  taking print beyond paper..

http://www.magazooms.com

Greenville, SC
864.284.9918