Gå til innhold

Variabel fra skript tilgjengelig utenfor skriptet?


Anbefalte innlegg

Hvis jeg lager en variabel i et javaskript som skal settes inn i et html dokument, er den tilgjengelig også utenfor skriptet?

(Kan variablen fra skriptet brukes av html koden utenfor skriptet?)

 

Prøver å få til at et javaskript setter en variabel, og at html koden laster et bilde på grunnlag av denne variablen..

Endret av snoopafella
Lenke til kommentar
Videoannonse
Annonse

<html>

<head>

<script language=JavaScript>

function bilde()

{

var navn= "[0]";    //variabel fra cgi script

switch (navn)

  {

case "bone":   

document.write("<img src="/image/bone.JPG>")

break; 

default:   

document.write("<img src="/image/default.JPG>")

break;

  }

}

</script>

</head>

<body>

 

<BODY onLoad="return bilde()">  //får ingen output her...

 

</body>

</html>

 

Prøver å få denne her til å funke, men får ingen output..

Kaller jeg funksjonen feil eller er funksjonen feil definert?

Lenke til kommentar

Prøv denne:

 

<html>
<head>
<script type="text/javascript">
function bilde()
{
var navn= "[0]";    //variabel fra cgi script
switch (navn)
{
case "bone":
document.write("<img src='/image/bone.JPG'>")
break;
default:
document.write("<img src='/image/default.JPG'>")
break;
}
}
</script>
</head>
<body onload="bilde()">

</body>
</html>

 

Var noen feiler i din kode. :yes:

Tror denne skal funke, hvis du får resultatet fra CGI-scriptet (du bør teste en output av resultatet, for å være sikker på at resultatet registreres).

Lenke til kommentar

Nei, jeg tror ikke dette vil funke. CGI-script sender vel ikke masse variabler med output.

 

Uansett så tror jeg nok det finnes andre løsninger på problemet. Du kan jo feks. legge variabelen i URLen og hente den med PHP eller evt. CGI hvis det går. (Jeg tenker på GET[].)

 

'Side.php?Bilde=bone&Annet=JA'

Lenke til kommentar

<TABLE BORDER=2 CELLSPACING=0 CELLPADDING=1>

<TD><TABLE BORDER=1 CELLSPACING=0 CELLPADDING=3 WIDTH=700 >

<td><tr>

<TD>

<left><FONT SIZE="-1"><b>[0] som gjerne ville [2] kl [t] sa:</FONT></left>

</TD></tr></td>

<TD rows=2>

<left><FONT SIZE="-1">[6]</FONT></left>

</TD>

</TR>

</TABLE>

</TD>

<TD>

<body onload="bilde()">//bildet skal inn her...

</TD>

</TABLE>

<p align=right><a href="#skjema"></a><p>

</body>

</html>

 

Skriptet funka DevN.. takker.. men....

Bildet skal inn i denne tabellen, men åpnes i et nytt/blankt vindu og ikke i cellen det skal være i, når jeg prøver koden vist over..(tok ikke med headeren)

Noen forslag?

 

Forklaring på hvordan siden er bygget opp:

 

"Gjesteboka" er et ferdiglaget telenor skript. Den setter sammen en side av 3stk. html dokumenter.. hvis den ikke finner kapsel.html (koden vist ovenfor) vises ingen innlegg..

Innlegg til gjesteboka kommer fra topp.htm og blir lagret i "dato+id.inn" filer. (1 fil for hvert innlegg)

Filene inneholder verdier fra en form i topp.htm kalt [0]...[9].

([0]=navn, [6]=selve teksten de skrev)

cgi skriptet henter verdiene for [0] til [9] fra hver "dato+id.inn" fil og setter det inn i hver sin kapsel.htm...(som dere ser av koden settes verdiene [0],[2] og [6] inn i en fedig tabell)

 

oppbygning av siden:

topp.htm

kapsel.htm (innlegg 1)

kapsel.htm (innlegg 2)

osv..

bunn.htm

 

Har ikke vært borti php men jeg tror ikke det går, siden kapsel må være kapsel.htm..(kalte den html istedet for .htm en gang og websiden funket ikke, kapsel.php vil altså ikke funke)

Endret av snoopafella
Lenke til kommentar

Ok, jeg tok den enkleste løsningen jeg kom på. Jeg tror den skal funke like bra som den andre. Her kuttet jeg altså ut hodet ("<head></head>"), og tok alt nede i tabellen.

 

<html>
<body>
<table width="400px" border="1" id="tableimg">
  <tr><td>
     I cellen under vises bildet:
  </td></tr>
  <tr><td>
     <script type="text/javascript">
        var navn="[0]";
        switch (navn)
        {
           case "bone":
              document.write("<img src='/image/bone.JPG' />")
              break;
           default:
              document.write("<img src='/image/default.JPG' />")
              break;
        }
     </script>
  </td></tr>
</table>
</body>
</html>

 

Antar du kan sette det slik du skal ha det selv?

 

Og en annen ting: Ikke bruk store bokstaver i HTML-kode. ;)

 

EDIT: Angående PHP, så kan siden kjøres "server-side" selv om den ikke har endelsen ".php". Men det avhenger jo av innstillingene serveren kjører.

Endret av DevN
Lenke til kommentar

Det er nok mulig med «"» også, men krever som regel et tegn foran slik at JavaScript forstår at det er en del av strengen.

 

Jeg vet ikke hvordan man får et slikt i JavaScript, men i VBScript kan man bruke «""» (dobbelt), og i PHP kan man bruke «\"». Kan sikkert gjøres som i PHP.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...