I'm trying to send data to a PHP file via JSON but i'm getting an error when trying to JSON the data.
I'm pretty sure i'm doing this right. Any suggestions ?
Here's my ActionScript 3 code :
var dataToSend:Array = new Array();
var data:Object = new Object();
data.callFunction = "getQuestion";
data.numberOfQuestions = "1";
dataToSend.push(data);
trace(data);
var variables:URLVariables = new URLVariables();
variables.data = JSON.stringify(dataToSend);
var url:String = "myurl";
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.load(request);
loader.addEventListener(Event.COMPLETE, requestComplete);
And my PHP code :
if $data[ "callfunction" ] = "getQuestion";
{
echo("Sent");
}
Your ActionScript 3 code looks fine but you have some problems in your PHP's one.
Let's see that.
if
statement in PHP is like the AS3's one :<?php if( condition ) instruction; ?>
==
and not the assignment one ( =
).POST
method, you can use the PHP's $_POST
array to get it.decode_json()
function in your PHP side.So your PHP code can be like this for example :
<?php
if(isset($_POST['data']))
{
$data = $_POST['data'];
$json_data = json_decode($data);
if($json_data[0]->callFunction == "getQuestion")
{
echo("Sent");
}
}
?>
Then you can get the response of your PHP script in your AS3 requestComplete
function :
function requestComplete(e:Event): void
{
trace(URLLoader(e.target).data); // gives : Sent, for example
}
...
Hope that can help.