Toon posts:

[js] functie werkt alleen met filesnames die uit nrs bestaan

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig een forum aan te passen. Het gaat om de volgende functie, die het usericon wat upgeload is in een popup venster, overzet naar de "profile" pagina

code:
1
2
3
4
5
6
7
8
9
10
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
<!--
function choose(num)
{
    window.opener.document.#field#.value = num;
    window.opener.document.images["avatarImg"].src = "avatars/"+num+".jpg";
    window.close();
}
//-->
</SCRIPT>


De functie wordt als volgt aangeroepen:
code:
1
2
3
<a href="javascript:choose(#cffile.serverFileName#)">
[img]"avatars\#cffile.serverFileName#.jpg"[/img]
</a>


#cffile.serverFileName# is een coldfusion variable.

Nu werkt dit alleen maar als je files upload die alleen uit nummers bestaan. Bv 123.jpg
Ik een aantal dingen geprobeerd, maar snap niet waarom hij alleen werkt bij files die alleen uit nummers bestaan.

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

dan moet je quotjes om die #cffile in die choose zetten, zodat de js ze als string doorgeeft. nu zou dat niet gebeuren. dan gaat het script op zoek naar een globale variabele ipv dat het een string doorgeeft, en dat geeft een foutmelding.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Verwijderd

Probeer het volgende eens:

<a href="javascript:choose('#cffile.serverFileName#')">

Let op die enkele quotes ('). Ik heb dan wel geen verstand van ColdFusion, maar ik neem aan dat CF die #waarde# vervangt door een de waarde die die variabele bevat.

In het geval van een nummer krijg je bijvoorbeeld functie(545), een geldig javascript statement. In het gevan van een alfanumerieke string krijg je bijvoorbeeld functie(woord). Ook geldig, maar dan moet je wel een JS variabele hebben die woord heet, en dat lijkt me onwaarschijnlijk. Probeer het dus met enkele quotes eromheen, dat geeft de string 'woord' door aan die functie.

Wat dat #field# in die functie doet is me niet helemaal duidelijk trouwens, maar dat zal jij beter weten dan ik :)