Avatar billede jakwag Nybegynder
16. november 2003 - 15:36 Der er 22 kommentarer og
2 løsninger

send vars med loadVariables

Hej

Jeg sender nogle variabler med loadVariables. Men det virker ikke hvis jeg sender meget tekst afsted.

loadVariables("writeNews.asp?xml="+news_xml.toString(), this);

Er der en grænse for hvor meget text man kan sende ud af flash med denne metode?

: ) Jakob
Avatar billede _k Nybegynder
16. november 2003 - 16:58 #1
Brug "post" i stedet for "get" (som vistnok er default). Syntaksen er:

loadVariables ("http://www.whereever.com", "", "POST");

Så vidt jeg husker, er "get" attached til urlen du kalder din writeNews.asp med. Det sætter nogle klare begrænsninger på, hvor lang den må være. "POST" bliver vistnok sendt med sin egen heading, og kan derfor (teoretisk) være så stor det skal være.....
Avatar billede jakwag Nybegynder
16. november 2003 - 17:00 #2
Kanon! Hvis det altså virker... Jeg prøver lige og vender tilbage.
Avatar billede jakwag Nybegynder
16. november 2003 - 17:24 #3
næ, det virker stadig ikke. kun hvis jeg sender lidt tekst.

Har du nogen ide om hvad der kan være galt?

Jeg skriver nu:

loadVariables("writeNews.asp?xml="+news_xml.toString(), "", "POST");
Avatar billede _k Nybegynder
16. november 2003 - 17:50 #4
Det kan være, at du i din xml-streng får outputtet et eller andet specialtegn, som browseren går i selvsving over? Stopper den samme sted hver gang?
Avatar billede jakwag Nybegynder
16. november 2003 - 17:54 #5
det er ikke på grund af speciel tegn. Den stopper ikke noget specielt sted, den gør bare ikke noget.

Jeg indtaster text i et textfelt og trykker på en gem knap jeg har lavet.

Hvis jeg ikke indtaster mere end et par linier virker det fint.

Hvis jeg indtaster meget så sker der intet den gemmer ikke lidt, den gemmer slet ikke.
Derfor hænger jeg osse mest til at fejlen må være i flash og ikke i mit asp.

Jeg har ikke fundet den nøjagtige granse endnu.
Avatar billede jakwag Nybegynder
16. november 2003 - 17:57 #6
Du kan selv se det her:

http://www.contentdepot.dk/newsAdmin.swf

Af en eller anden grund skal man lukke browser vinduet når man har trykket gem. man kan ikke bare trykke f5.

Du er velkommen til at indtaste hvad du har lyst. det er kun gem knappen der virker lige nu.
Avatar billede _k Nybegynder
16. november 2003 - 19:15 #7
Vil give dig ret i, at fejlen må ligge i Flash, hvis den slet ingenting sender, hvis der er for meget.

Jeg tester som regel selv ved at kalde getURL i stedet for loadVariables. På den måde, kan man nemlig se hvilke kald man fyrer afsted - og ikke mindst hvordan asp/php'en reagerer på det....

Kunne også være en fejl i din xml? Som du ved, skal der ikke de store fejl til, før xml'en ikke bliver valideret.....
Avatar billede barklund Nybegynder
16. november 2003 - 22:06 #8
Flash klipper url'en ja. Derfor skal du sende som POST variabel:

xml = news_xml.toString()
loadVariables("writeNews.asp", "", "POST");

Det gør, at samtlige variabler på tidslinien bliver sendt som POST. Hvilket ikke er særlig smart.

Derfor bruger du selvfølgelig XML-objektet eller til nød LoadVars :)
Avatar billede jakwag Nybegynder
17. november 2003 - 12:22 #9
hej barklund.

Det kan jeg ikke få til at fungere.

Du mener at jeg skal skrive:
news_xml.send("writeNews.asp");

...eller?

Hvis jeg gør det, hvad er det så at der bliver sendt til asp'en? Som den er nu forventer den jo en string. Jeg kunne ikke finde nogen der kunne finde ud af at lave et asp script der kunne blaste xml'en i en tekstfil, så jeg brugte istedet et asp der skriver en tekstfil der ender på xml.
Avatar billede barklund Nybegynder
17. november 2003 - 19:06 #10
Ovenstående metode giver også ASP-scriptet en XML-streng. Den bliver bare sendt som rå post data. Hvorledes man henter rå post data ud i ASP har jeg før forgæves søgt efter - den nemmeste (som jeg ikke har prøvet, da jeg ikke skulle brugeg det) er nok at spørge i den rigtige kategori herinde. Men det bliver sendt som en streng - du skal blot ændre din asp til at læse strengen lidt anderledes...
Avatar billede jakwag Nybegynder
22. januar 2004 - 11:02 #11
barklund > kom med et svar så du osse kan få lidt point for besværet..
Avatar billede barklund Nybegynder
22. januar 2004 - 11:10 #12
Ok, jakob ;)
Avatar billede barklund Nybegynder
22. januar 2004 - 11:11 #13
Fandt du ud af at hive rå postdata ud i asp? Jeg har nemlig ikke fundet det ;)
Avatar billede jakwag Nybegynder
22. januar 2004 - 11:14 #14
Næ, jeg gav op, men jeg har fået et par andre løsninger jeg lige skal have kigget igennem når jeg har tid.

Det vil sige, det virker med lidt, men ikke med meget..?! men der er jo så meget jeg ikke forstår.. :D
Avatar billede barklund Nybegynder
22. januar 2004 - 11:40 #15
Man kan jo bare bruge loadvars:

sendMøget = new LoadVars();
sendMøget.xml = news_xml.toString();
sendMøget.send("server.asp", "POST");

Så får du send det hele som postdata, hvor du nemt kan hente den ud :)
Avatar billede jakwag Nybegynder
22. januar 2004 - 12:08 #16
tror du det gør nogen forskel om jeg bruger send method'en fra LoadVars objectet eller XML objectet?

lige nu har jeg jo noget i retning af:

sendMøget = new XML();
sendMøget.send("server.asp", "POST");
Avatar billede jakwag Nybegynder
22. januar 2004 - 12:09 #17
burde de ikke gøre det samme?
Avatar billede barklund Nybegynder
22. januar 2004 - 12:18 #18
Forskellen er blot, at din xml-objekt sender som postdata:

<xml />

mens loadvars sender loadvars:

xml=<xml />

Den sidste kan du altså nemt læse i ASP som Request("xml"), mens jeg ikke aner, hvordan man læser den anden - endnu ;)
Avatar billede jakwag Nybegynder
22. januar 2004 - 12:52 #19
good point. Jeg smider det lige op når jeg har fået det til at virke... en dag..
Avatar billede barklund Nybegynder
22. januar 2004 - 12:55 #20
ok ;)
Avatar billede jakwag Nybegynder
22. januar 2004 - 13:37 #21
jeg prøvede det lige:

jeg har en swf med denne kode:

sendDet = new LoadVars();
sendDet.xml = "hej";
sendDet.send("write.asp", "POST");

og en asp med:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("tekstfil.txt")
Set f = fso.OpenTextFile(filespec,2)

' Skriv tekst i en linie
f.WriteLine Request("xml")

f.Close
%>

det virker, men den åbner et nyt vindue når jeg kalder asp'en. Kan det ikke undgås?
Avatar billede barklund Nybegynder
22. januar 2004 - 13:46 #22
XML.send er også mærkelig - brug sendAndLoad istedet og lad argument være sig selv:

sendDet = new LoadVars();
sendDet.xml = "hej";
sendDet.sendAndLoad("write.asp", sendDet, "POST");

Så kan du da putte en onLoad på hvis du ønsker det ;)
Avatar billede jakwag Nybegynder
22. januar 2004 - 14:26 #23
FANTASTISK! nu fungerer det perfekt! Tak.

En sidste ting, når man nu bruger sendAndLoad, kunne man så ikke forestille sig at ASP sendte noget tilbage som fortalte om det i det hele taget gik godt eller ej, så brugeren kunne blive advaret hvis dataen ikke blev gemt eller bare få at vide når den blev?
Avatar billede barklund Nybegynder
22. januar 2004 - 14:45 #24
Jo så bør du svarer med en:

<xml result="ok|error" msg="OK|Tumpefejl" />

Eller sådan noget ;)

Så kan du nemt debugge også, når nu du ikke direkte kan se outputtet... :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester