Avatar billede agerled Nybegynder
22. oktober 2003 - 23:02 Der er 8 kommentarer og
1 løsning

Db til javascript opdaterer ikke

Jeg bruger følgende kode til at hente et tal fra min db, men tallet opdaterer ikke sig selv på min side. Nogen der ved hvorfor?

<script language="javascript" type="text/javascript">

function refreshFrames(){

<% set chance = openrecordset("select * from SMSChancen_Log where closed = 0 AND chance = 'DagsChancen'") %>

<% dagschancen = chance("tilmeldte") %>

        dagschancen="<% =dagschancen %>"
       
             
        document.forms.countdownform.T1.value=dagschancen;
       
        CountDownId=setTimeout("refreshFrames()",10000);
   
}

<% set chance = nothing %>

</script>
Avatar billede olebole Juniormester
22. oktober 2003 - 23:37 #1
<ole>

JavaScript, der afvikles på klienten, kan ikke hente data fra serveren uden siden reloades.

/mvh
</bole>
Avatar billede agerled Nybegynder
22. oktober 2003 - 23:43 #2
ok, er der ellers en måde at gøre det på.

Lige nu henter jeg data til 3 forskellige iframes på min side og det kan godt hakke lidt når de alle tre refresher og laver en forespørgsel hvert 10. sekund...???
Avatar billede olebole Juniormester
22. oktober 2003 - 23:59 #3
Ja, du kan lave én iframe:
  <iframe src="en_fil.asp" style="display:none" ... osv ...></iframe>

I den ligger de funktioner, du nu har liggende i de tre iframes. Dokumentet udfører DB-queries og resultaterne skrives ind i et JS-kald til tre funktioner i hoved-dokumentet. Noget à la:

  <% variabel = [ SQL-QUERY ] %>
<script type="text/JavaScript">
  parent.funktionsnavn( "<% variable %>" );
  setTimeout("location.reload(true)", 10000);
</script>

I hoved-dokumentet skriver du så:

<script type="text/JavaScript">
function funktionsnavn(v) {
  document.getElementById("mitDiv").innerHTML = "En variabel: " + v;
}
</script>

<div id="mitDiv"></div>

/mvh
Avatar billede olebole Juniormester
23. oktober 2003 - 00:02 #4
Hvis jeg kalder den 'variabel' her:
  <% variabel = [ SQL-QUERY ] %>
må jeg nok også hellere kalde den det samme her:
  parent.funktionsnavn( "<% variabel %>" );
... sorry  ;o)
Avatar billede olebole Juniormester
23. oktober 2003 - 00:03 #5
Og selvfølgelig skal den printes ud til siden ... derfor:
  parent.funktionsnavn( "<% =variabel %>" );

God nat, OleBole  :D
Avatar billede agerled Nybegynder
23. oktober 2003 - 12:32 #6
det virker kanon, tak. læg et svar.

ps. det vil sige at jeg skal have følgende tre gange på siden når jeg har 3 <div> ik??

<script type="text/JavaScript">
function funktionsnavn(v) {
  document.getElementById("mitDiv").innerHTML = "En variabel: " + v;
}
</script>
Avatar billede olebole Juniormester
23. oktober 2003 - 12:49 #7
Jo, men du kan også bruge én funktion og kalde den med et ekstra argument:

function writeMyShit(v, d) {
  document.getElementById("mitDiv"+d).innerHTML = "En variabel: " + v;
}

writeMyShit("en streng", 2);

og dine divs kan så hedde id="mitDiv1", id="mitDiv2" og id="mitDiv3"
/mvh
Avatar billede agerled Nybegynder
23. oktober 2003 - 12:53 #8
Helt kanon. mange tak. du kan sku en ting eller to :-)
Avatar billede olebole Juniormester
23. oktober 2003 - 13:00 #9
Selvtak  :)
En lille ting er dog, at hvis du skal formatere de tekster/variabler, du hiver ud af databasen, bør du gøre det på klienten.
Dvs: Kald funktionen med variabler og brug så funktionen (eller funktionerne) til at lægge dem ind i HTML, inden du skriver det ind i div'ene.

På den måde aflaster du serveren, der har rigeligt at knokle med ... ikke mindst med kald hvert 10. sekund  ;o)
/mvh
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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