Har lite problem med att skicka en variabel från flash till php nu. Jag behöver skriva in info i en mysql databas och det har jag lyckats med, med den stora nackdelen att jag blir skickad till phpsidan som tar emot från flash. Jag vill att man inte ska bli vidareskickad, flashfilen får inte störas så att säga.
var episode:LoadVars = new LoadVars();
episode.ep = "episode_doktorn_btn";
episode.sendAndLoad("flash_output.php", "target", "POST");
Det är den kod jag knåpat ihop ny och den gör till synes ingen ting.
När jag fick resultat så såg sista raden ut så här;
Korrekt...du behöver två LoadVars för att göra en sendAndLoad.
var script:String="flash_output.php";
var load_lv:LoadVars=new LoadVars();
var send_lv:LoadVars=new LoadVars();
send_lv.sendAndLoad(script, load_lv, "POST");
load_lv.onLoad=function(success){
if(success){
// data laddad och klar
}
}
Utan att veta mer än att "inget händer" är det svårt att säga vad som inte fungerar.
Skickar Flash en request?
Vad får du för respons på den requesten?
Om du inte redan har en debug proxy...testa med https://www.xk72.com/charles/
Edit: Ok...hoppas det funkar med exemplet ovan då.
Nu skrivs det in i tabellen, så framsteg har skett. men vet inte riktigt hur jag ska få in värdet.
jag provade med att skriva load_lv.ep = "episode_doktorn_btn"; men det gjorde ingenting.
Och du är säker på att värdet skickas från flashfilen?
PHP är grekiska för mig, så där kan jag inte hjälpa till.
Men för att sända en variabel och ta emot en xml med sendandload använder jag följande kod:
var sendURL:String = "sidan.asp"; //Sidan som skall ta emot variabeln
var varToSend:String = "text som skall in i databasen"; //Variabeln som skall skickas
objToReceive = new XML(); //Du tar troligen inte emot en xml, så detta
objToReceive.ignoreWhite = true; //får ändras beroende på vad du ska ta emot
objToReceive.onLoad = ReceiveResponse; //När min xml tagits emot skicka jag vidare till en funktion...
varToSend.sendAndLoad(sendURL, objToReceive); //Skickar iväg variabeln
Får ett klurigt felmeddelande av den där koden. Lite konstigt att den inte tycker att funktionen sendAndLoad finns, den markerar ju t.o.m ordet blått i koden. :o
**Error** Symbol=content, layer=actions, frame=94:Line 12: There is no method with the name 'sendAndLoad'.
varToSend.sendAndLoad(sendURL, objToReceive); //Skickar iväg variabeln
Total ActionScript Errors: 1 Reported Errors: 1
String objekt har ingen sendAndLoad metod, utan du skall ha ett LoadVars objekt.
Mitt exempel var inkomplett ser jag nu...självfallet måste du lägga in värdet som skall skickas.
var script:String="flash_output.php";
var load_lv:LoadVars=new LoadVars();
var send_lv:LoadVars=new LoadVars();
send_lv.ep= "episode_doktorn_btn";
send_lv.sendAndLoad(script, load_lv, "POST");
load_lv.onLoad=function(success){
if(success){
// data laddad och klar
}
}
Du får felmedelandet därför att varToSend är ju ett string-objekt och detta har ingen sendAndLoad metod.
var sendURL:String = "sidan.asp"; //Sidan som skall ta emot variabeln
var sender:LoadVars = new LoadVars();
var reciever:LoadVars = new LoadVars();
sender.ep = "variabeln som skall skickas till servern";
reciever.onLoad = function(success)
{
if(success)
{
// Variablerna kunde laddas och tolkas. Kod för att omhänderta/skicka vidare
// variabler här
} else {
// Ooops! Någonting gick snett. Felhantering placeras här.
}
}
sender.sendAndLoad(sendURL, reciever);
Tänk också på att PHP måste skriva ut någonting. Annars kommer överföringen att misslyckas. Vet av erfarenhet att om man skickar variabler till ett serversideskript som inte returnerar annat än en fullständigt blank sida så kommer ingenting, som t.ex insättningar/uppdateringar av databaser m.m., att utföras.