Avatar billede jansangill Nybegynder
05. maj 2007 - 18:18 Der er 4 kommentarer og
1 løsning

loadVars problemer.

hejsa

Jeg har et lille problem. Kan ikke rigtigt få det rigtige billede frem ved loadvars. Jeg bruger asp.

ASP koden:

if pomfrit <= 500 then
response.write displayPictureRed
mainMessage = "kvota=false"
else
response.write displayPictureGreen
mainMessage = "kvota=true"
end if
Response.Write(mainMessage)

AS koden:

red._visible = false;
green._visible = false;

function myFunction() {

    if(this.kvota == "true"){
    red._visible = true;
}else{
    green._visible = true;
}
}
var container:LoadVars = new LoadVars();
container.onLoad = myFunction;
container.load("http://123ogabc.dk/kvota.asp",container,"POST");



Meningen er at hvis pomfrit er mindre end 500 så skal der vises en rød billede, vis den er over 500 så skal en grøn billede vises.

Lige nu viser den kun en billede, og det afhænger desværre ikke af om kvota = sandt eller falsk.
Avatar billede _k Nybegynder
06. maj 2007 - 12:49 #1
Du skal skrive container.kvota i stedet for this.kvota.

Og hvis du ikke kender kommandoen, er "trace" et super-dejligt værktøj. Med trace kan du nemlig udskrive tekst og variable til output-vinduet. I dit tilfælde ville jeg sætte denne her trace ind i starten af din funktion:

trace("myFunction() " container.kvota);

...bare for at tjekke om den bliver kaldt og om alt er som det skal være..

(Mht. din asp, ville jeg nok også vælge at outputte dine variable så de er mere spiselige for Flash: mainMessage = "&kvota=true&")
Avatar billede jansangill Nybegynder
06. maj 2007 - 13:25 #2
desværre hjælper det ikke på situationen at skrive container.kvota istedet. ASP koden synes at virke udemærket, men flash vil bare ikke give det rigtige billede.

når jeg prøver at trace det ud, får jeg dette præcist:

myFunction()false

        </td>

    </tr>



</table>





</body>

</html>

Som du kan se får jeg en værdi ud (true eller false), men billedet synes ikke at ændre sig som det skal.

Måske skal jeg vise dig alt koden:


ASP:

<%@Language=VBScript%>
<%Option Explicit%>
<%
Dim myConnection
Set myConnection=Server.CreateObject("ADODB.Connection")
    myConnection.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=" & Server.MapPath("../database/jn.mdb")
    myConnection.Open
  Dim loginSQL
    LoginSQL = "SELECT * FROM hylde"
  Dim myRS
    Set myRS=Server.CreateObject("ADODB.Recordset")
      myRS.Open loginSQL, myConnection

dim displayPictureRed, displayPictureGreen
displayPictureRed = "<img src='../Pictures/red_display.gif' height='15' width='15'>"
displayPictureGreen = "<img src='../Pictures/green_display.gif' height='15' width='15' align='center'>"


dim db, pomfrit, mainMessage

set db = myConnection.execute("SELECT SUM(kilo) AS Total FROM hylde WHERE info = 'pomfrit'")

pomfrit = db("Total")



%>

<html>
<body>


<table border="1">
    <tr>
    <td height="50"width="100">Pomfritter</td>
    <td height="50" width="100"><%=pomfrit & " " & "kilo"%></td>
        <td height="50" width="50">
    <%
    if pomfrit <= 500 then
    response.write displayPictureRed
    mainMessage = "&kvota=false"
    else
    response.write displayPictureGreen
    mainMessage = "&kvota=true"
    end if
    Response.Write(mainMessage)
    %>
    </td>
    </tr>

</table>


</body>
</html>


AS koden:


red._visible = false;
green._visible = false;

function myFunction() {
trace("myFunction()"+ container.kvota);

    if(container.kvota == "true"){
    red._visible = true;
}else{
    green._visible = true;
}
}
var container:LoadVars = new LoadVars();
container.onLoad = myFunction;
container.load("http://123ogabc.dk/kvota.asp",container,"POST");
Avatar billede _k Nybegynder
06. maj 2007 - 13:36 #3
Hov, når du bruger LoadVars bør du ikke referere til en side som spytter html ud. Det kan Flash ikke finde ud af. I stedet bør det være en "rå" asp-side med kun variablenavne.
Når Flash alligevel finder den rigtige variabel frem til dig er det sikkert fordi du har fået pakket den rigtigt ind imellem &-tegn

Umiddelbart ser din kode jo så rigtig ud. Under alle omstændigheder bør dit instance "green" blive visible hvis koden eksekveres.
Det eneste jeg kan komme i tanke om kunne være galt er at du ikke har sat det rigtige "instance name" på det mc som skal hedde "green". Eller at "green" ikke er på stagen i samme frame som din kode?
Avatar billede jansangill Nybegynder
06. maj 2007 - 14:47 #4
ja nemlig ja. Det virkede med container. Jeg glemte bare som den idiot jeg er, at skifte dette:
function myFunction() {
trace("myFunction()"+ container.kvota);

    if(container.kvota == "true"){
    red._visible = true;
}else{
    green._visible = true;
}
}

til dette:

function myFunction() {
trace("myFunction()"+ container.kvota);

    if(container.kvota == "true"){
    green._visible = true;
}else{
  red._visible = true;
}
}


Tak for hjælpen _k, endnu engang må jeg jo nok sige:) Smid du et svar
Avatar billede _k Nybegynder
06. maj 2007 - 16:48 #5
Så siger jeg da selvtak ;)
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