Ny dag, nytt litet problem. :)
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;
episode.send("flash_output.php", "_SELF", "POST");
tar jag bort "_SELF" så får jag upp att sidan försökt öppna ett pop-up fönster.
Jag har sökt här på wF och andra ställen men inte hittat något som fungerat.
visslaren skrev:
var episode:LoadVars = new LoadVars();
episode.ep = "episode_doktorn_btn";
episode.sendAndLoad("flash_output.php", "target", "POST");
ska inte det där "target" bytas ut mot objektet som skall ta emot variablerna?
Dvs inte en sträng som du skrivit utan ett objektnamn.
såhär:
var episode:LoadVars = new LoadVars();
episode.ep = "episode_doktorn_btn";
episode.sendAndLoad("flash_output.php", det_objekt_som_skall_ta_emot, "POST");
Jag vill i a f minnas att det är på det viset, men även jag kan ha fel. :)
/Patrik
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
}
}
Det hjälpte tyvärr inte, inget händer. :(
r: detta svar var riktat mot andyoumaydies svar. tog lite väl lång tid på mig att skriva den där meningen så fler svar hann komma :p
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.
Vad är det för ett värde du ska få in, och vart ska du få det?
Kan man kanske få se lite kod? :)
Oj, varit lite stressigt så detta har kommit lite på sidan av, men problemet består! :)
givetvis, här kommer den phpkod jag har använt;
$ep = $_POST['ep'];
mysql_query("INSERT INTO tbl_episodes (episode, uid) VALUES ('".$ep."', '".$_SESSION['session_uid']."')");
värdet som ska skickas till php är en textsträng.
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
Hoppas att detta kan hjälpa dig.
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.
Du kan t.ex sist på din phpsida skriva ut:
&done=true
/Mirandir
Fungerade perfekt! tackar :)