Volledige versie bekijken : flash naar php
robdekkers
%Europe/Berlin %588 %2005, 14:07
Ik ben bezig met een eenvoudige poll,
het php-gedeelte is klaar,
maar zenden vanuit flash lukt niet:
ik gebruik het volgende AS dat is toegevoegd aan een button:
on (release) {
action = "vote";
choice = 1;
loadVariables ("vote.php", this, "POST");
gotoandstop ("load vote");
}
nu heb ik begrepen dat loadVariables een beetje verouderd is.
Wat moet doen?
Rob
latino
%Europe/Berlin %602 %2005, 14:27
LoadVars gebruiken :)
je maakt zeg maar een LoadVars aan:
var myVars:LoadVars = new LoadVars ();
myVars.choice = iets; // zo kun je vars naar php sturen en haal je dus op met $_POST['choice']
myVars.onLoad = checkResult;
myVars.sendAndLoad("jeURL",myVars,"POST");
function checkResult (succes)
{
if(success)
{
if(this.resultaat="okay")
{
je acties;
}
}
else
{
trace("error");
}
}
in je php check je dus of de query goed wordt uitgevoerd en geef je dit mee:
echo'&resultaat=okay';
met daarna de rest van je items wat je naar flash wilt sturen snap ie?
robdekkers
%Europe/Berlin %685 %2005, 16:26
Dank je wel. Ik ga ermee aan de slag.
robdekkers
%Europe/Berlin %391 %2005, 09:23
Als ik het script aanpas (bijvoorbeeld voor knop 1) dan werkt het nog niet. Ik zal ook het script van vote.php even laten zien. Waar zit de miscommunicatie?
var myVars:LoadVars = new LoadVars ();
myVars.choice = 1
myVars.onLoad = checkResult;
myVars.sendAndLoad("vote.php", myVars, "POST");
function checkResult (succes)
{
if(success)
{
if(this.resultaat="okay")
{
je acties;
}
}
else
{
trace("error");
}
}
<?
require('common.php') ;
$link = dbConnect();
if ($_POST['action'] == "vote") {
$fieldName = "votes" . $_POST['choice'];
$query = "UPDATE enquete SET " . $fieldName . "=" . $fieldName+l . "
WHERE pollID = " . $_POST['pollID'];
$result = @mysql_query{$query);
if (! $result) {
die ("Error executing query");
}
setcookie("lastpollID", $_POST['pollID'], time() + (365 * 86400));
$query = "SELECT votesl, votes2, votes3
FROM enquete WHERE pollID = ". $_POST['pollID'];
$result = @mysql_query{$query);
if (!$result) {
die ("Error executing query");
}
$votes = mysql_fetch_assoc($result);
print "&result=okay";
print "&votes1=" . $votes['votes1'];
print "&votes2=" . $votes['votes2'];
print "&votes3=" . $votes['votes3'];
mysql_close($link);
?>
latino
%Europe/Berlin %401 %2005, 09:38
ik zie al twee posts die niet in flash worden aangemaakt, namelijk:
if ($_POST['action'] == "vote")
$_POST['pollID'];
dus werkt het zowizo niet
en wat werkt er niet?
edit: (ook success is twee keer verschillend geschreven was een foutje van mij)
edit2: ik zou e rook nog een cachekiller opzetten zo voorkom je dat je dezelfde page laad:
myVars.sendAndLoad("vote.php?id="+int(Math.random()*100000),myVars,"POST");
robdekkers
%Europe/Berlin %488 %2005, 11:43
Wat er niet werkt:
De data komen niet aan in de database.
Het opvragen lukt wel van php naar flash,
maar het posten vanuit flash lukt niet.
In het oude script stond wel een action = "vote";
dus ik moet in AS dit toevoegen?
var myVars:LoadVars = new LoadVars ();
myVars.choice = 1
myVars.action = "vote";
myVars.pollID = (welke waarde moet hier invullen?)myVars.onLoad = checkResult;
myVars.sendAndLoad("vote.php?id="+int(Math.random()*100000), myVars, "POST");
function checkResult (succes)
{
if(success)
{
if(this.resultaat="okay")
{
je acties;
}
}
else
{
trace("error");
}
}
latino
%Europe/Berlin %542 %2005, 13:01
in php kun je dan beter zeggen:
if(isset($_POST['action'] == "vote")
je pollid is hetgeen wat uit je database komt..dus waarschijnlijk het id van de poll...
deze dien je dus eerst op te halen met hetzelfde pricipe of als het mogelijk is via FlashVars (ik hoop dat je weet wat dat is) zodat je heel makklijk aan het id komt
succes
robdekkers
%Europe/Berlin %706 %2005, 16:57
dank je.
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.