Avatar billede brian Nybegynder
22. august 2000 - 14:02 Der er 22 kommentarer og
1 løsning

Hvor er fejlen ??????

I en formular har jeg 10 grupper radiobuttons - spg1, spg2, spg3 o.s.v. - en submit button med onClick=\"test(this.form);\"

følgende kode :
<Script Language=\"JavaScript>
<!--
function test(f) {
   
    var v1=0;
    for (i=0;i<f.spg1.length;i++) {
      if (f.spg1[i].checked) {
      v1=f.spg1[i].value;
      }
    }
    var v2=0;
    for (i=0;i<f.spg2.length;i++) {
      if (f.spg2[i].checked) {
      v2=f.spg2[i].value;
      }
    }
    var v3=0;
    for (i=0;i<f.spg3.length;i++) {
      if (f.spg3[i].checked) {
      v3=f.spg3[i].value;
      }
    }
    var v4=0;
    for (i=0;i<f.spg4.length;i++) {
      if (f.spg4[i].checked) {
      v4=f.spg4[i].value;
      }
    }
    var v5=0;
    for (i=0;i<f.spg5.length;i++) {
      if (f.spg5[i].checked) {
      v5=f.spg5[i].value;
      }
    }
    var v6=0;
    for (i=0;i<f.spg6.length;i++) {
      if (f.spg6[i].checked) {
      v6=f.spg6[i].value;
      }
    }
    var v7=0;
    for (i=0;i<f.spg7.length;i++) {
      if (f.spg7[i].checked) {
      v7=f.spg7[i].value;
      }
    }
    var v8=0;
    for (i=0;i<f.spg8.length;i++) {
      if (f.spg8[i].checked) {
      v8=f.spg8[i].value;
      }
    }
    var v9=0;
    for (i=0;i<f.spg9.length;i++) {
      if (f.spg9[i].checked) {
      v9=f.spg9[i].value;
      }
    }
    var v10=0;
    for (i=0;i<f.spg10.length;i++) {
      if (f.spg10[i].checked) {
      v10=f.spg10[i].value;
      }
    }
findSvar(); 
}

function findSvar(){
  var svar=0;
  if (v1==2){
  svar++;
  }
  if (v2==3){
  svar++;
  }
  if (v3==3){
  svar++;
  }
  if (v4==2){
  svar++;
  }
  if (v5==2){
  svar++;
  }
  if (v6==2){
  svar++;
  }
  if (v7==2){
  svar++;
  }
  if (v8==1){
  svar++;
  }
  if (v9==1){
  svar++;
  }
  if (v10==2){
  svar++;
  }
gemSvar();
}

function gemSvar(){
  var now = new Date();
  fixDate(now);
  now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
  deleteCookie(\'resultat\');
  setCookie(\'resultat\', svar, now);
}
//-->
</Script>

Koden har været i en .js fil og i min HEAD men der bliver ikke skrevet noget til cookien ???
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:12 #1
Der formentlig fordi din svar variabel er lokal i Findsvar. Tag den med som parameter.

1) Kald  gemSvar(svar)
2) Definer    function gemSvar(svar)
Avatar billede brian Nybegynder
22. august 2000 - 14:18 #2
Næh, det hjælper ikke (havde også prøvet det)

Avatar billede brian Nybegynder
22. august 2000 - 14:19 #3
Måske er det min håndtering af cookies der kikser ?!?!
Avatar billede brian Nybegynder
22. august 2000 - 14:19 #4
Er der en anden udvej for at overføre variablen til en anden side ?
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:38 #5
Nåh, du har samme problem i kaldet af findSvar

findSvar(v1,v2,v3,v4,v5,v6.v7.v8.v9,v10); 

function findSvar(v1,v2,v3,v4,v5,v6,v7,v8,v9,v10){

Prøv det lige, ellers burde du måske bruge globale variabler. Jamen, mon ikke der kommer
noget ned i \"le biscuit\" nu?
Avatar billede brian Nybegynder
22. august 2000 - 14:49 #6
Jeg er sgu\' ked af det, men nej.
Avatar billede brian Nybegynder
22. august 2000 - 14:52 #7
Måske er det mine \"bagekundskaber\" der ikke er tilstrækkelige.

function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + \"=\" + escape(value) +
      ((expires) ? \"; expires=\" + expires.toGMTString() : \"\") +
      ((path) ? \"; path=\" + path : \"\") +
      ((domain) ? \"; domain=\" + domain : \"\") +
      ((secure) ? \"; secure\" : \"\");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + \"=\";
  var begin = dc.indexOf(\"; \" + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(\";\", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + \"=\" +
    ((path) ? \"; path=\" + path : \"\") +
    ((domain) ? \"; domain=\" + domain : \"\") +
    \"; expires=Thu, 01-Jan-70 00:00:01 GMT\";
  }
}

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

bruges til at oprette en lillekage fra en anden side og det virker fint nok - det er åbenbart når jeg vil rette i den det smutter.
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:52 #8
Hov, er der noget, der hedder deleteCookie. Me thinks not so. Fjern bare den linie.
Avatar billede erikjacobsen Ekspert
22. august 2000 - 14:54 #9
Ok, det er faktisk et bibliotek. Men du behøver ikke fjerne den før du overskriver den.
Men prøv også en  alert(svar)  lige før du sætter den, så du kan se om du kommer så
langt, og om der er det rigtige i. Hvilken side går du til - ikke en på en anden server vel?
Avatar billede brian Nybegynder
22. august 2000 - 15:01 #10
Alert viser det rigtige, men........

Nej, jeg bliver på egen server.
Avatar billede erikjacobsen Ekspert
22. august 2000 - 15:07 #11
Øh, skal du gange med 1000? Er det ikke i sekunder allerede ??
Avatar billede brian Nybegynder
22. august 2000 - 15:13 #12
Muligt, muligt - jeg har fundet det på javascript.com

Nu har jeg prøvet at korte det hele lidt ned, således at det hele ligger i function test, men ...... alert viser stadigvæk det rigtige men der sker intet med mit lille bagværk.
Avatar billede erikjacobsen Ekspert
22. august 2000 - 15:16 #13
Anyone else? Jeg kan tidligst kigge på det igen i aften.
Avatar billede brian Nybegynder
22. august 2000 - 15:17 #14
Jeg smider gerne nogle flere point på bordet
Avatar billede cms Nybegynder
22. august 2000 - 17:38 #15
det ville være nemmere, hvis man kunne se hele koden
Avatar billede erikjacobsen Ekspert
22. august 2000 - 22:40 #16
Følgende kode ser ud til at virke. Jeg smider den lige på http://eksperten.i.hasselager.net/javascript/23731a.htm
Tryk på HUNDEKIKS og der bliver lagt en cookie, og det kan man se når man siger reload til siden, hvor den så
vil skrive indholdet af denne cookie ud.  Det ser altså fundamentalt set ud til at virke. Kunne det tænkes at din
kode virker - din cookie bliver lavet, men du får den ikke hentet rigtigt????

<html>
<head>
<title>Le Buiscuit</title>
</head>
<script language=\"JavaScript\">
<!--
  function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + \"=\" + escape(value) +
    ((expires) ? \"; expires=\" + expires.toGMTString() : \"\") +
    ((path) ? \"; path=\" + path : \"\") +
    ((domain) ? \"; domain=\" + domain : \"\") +
    ((secure) ? \"; secure\" : \"\");
    document.cookie = curCookie;
  }

  function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + \"=\";
  var begin = dc.indexOf(\"; \" + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
    var end = document.cookie.indexOf(\";\", begin);
    if (end == -1)
      end = dc.length;
    return unescape(dc.substring(begin + prefix.length, end));
  }

  function deleteCookie(name, path, domain) {
    if (getCookie(name)) {
      document.cookie = name + \"=\" +
        ((path) ? \"; path=\" + path : \"\") +
        ((domain) ? \"; domain=\" + domain : \"\") +
        \"; expires=Thu, 01-Jan-70 00:00:01 GMT\";
    }
  }

  function fixDate(date) {
    var base = new Date(0);
    var skew = base.getTime();
    if (skew > 0)
        date.setTime(date.getTime() - skew);
    }

                     
  function gemSvar(svar){
    var now = new Date();
    fixDate(now);
    now.setTime(now.getTime() + 365 * 24 * 60 * 60 * 1000);
    deleteCookie(\'resultat\');
    //alert(svar);
    setCookie(\'resultat\', svar, now);
  }
//-->
</script>
<body bgcolor=\"#FFFFFF\">

<script language=\"JavaScript\">
var x=getCookie(\'resultat\');
document.write(x);
</script>
<br><br>

<form method=post action=\"\">
<input value=\'Hundekiks\' type=\"button\" onclick=\"gemSvar(\'DER ER BQF I BOBS\');\">
</form>

</body>
</html>
Avatar billede brian Nybegynder
23. august 2000 - 00:56 #17
hehe, hvad skal man lige sige når man finder ud af at man er et kvaj ????

Ved nærmere eftersyn af min cookies mappe fandt jeg 2(!) cookies fra min side. Den ene fra min hovedmappe og den anden fra en undermappe. Den side jeg oprettede cookien i var i undermappen, og den side jeg åbnede og prøvede at læse fra cookien var i hovedmappen.

Ja, hvad skal man sige - KVAJPANDE - og det har jeg siddet og rodet med i flere dage !!!

Jeg har altid været en stædig modstander af C og har i snart 15 år kun ville arbejde med Basic/Visual Basic og det er åbenbart prisen...må vel en dag tage mig sammen.

Nå men hvorom alting er, så valgte jeg en anden løsning - prøv evt. at se http://www.pc-skole.dk under test din viden - men vil hellere bruge denne her hvis det virker. Hvordan jeg fik det til at virke med min begrænsede Java viden er fandme en gåde af de helt store, men det virker vist nok fint nok.

Jeg er dog for træt i knoppen (er nyopereret i det ene øje) og sidder bare og nyder min nye ADSL-forbindelse, så jeg tror jeg venter til imorgen tidlig hvis det er ok.
Avatar billede brian Nybegynder
23. august 2000 - 18:01 #18
Jeg kan ikke sige om det virker, men dit eksempel gør jo ihvertfald.

Mon det er fordi at den side der bliver åbnet ligger i /_vti_bin/shtml.exe/kontrol/testslut.htm

Jeg kan ihvertfald overhovedet ikke få kontakt til min cookie.
Avatar billede brian Nybegynder
23. august 2000 - 18:04 #19
Siden som ligger i /kontrol/test1.htm kan godt skrive til kagen, men /_vti_bin/shtml.exe/kontrol/testslut2.htm kan ikke læse fra kagen.

Jeg har prøvet på flere forskellige måder at komme tilbage til kontrol-mappen, men jeg er låst fast.

En god idé savnes, men pointene er selvfølgelig dine.
Avatar billede erikjacobsen Ekspert
23. august 2000 - 20:19 #20
Pas nu på - du må ikke acceptere før du er (nogenlunde) tilfreds. Jeg er nu også lidt nysgerrig.
Men ikke liiige nu.
Avatar billede brian Nybegynder
23. august 2000 - 20:30 #21
Jamen jeg er da tilfreds - og det er jo ikke din skyld at jeg ikke lige har set mig ordentlig for. Din kode virker jo - men det gjorde min selvfølgelig også.

Men når du får tid må du meget gerne se om du kan hjælpe mig - det er sk... irriterende og stopper mig lidt i sidens videre udvikling.
Avatar billede erikjacobsen Ekspert
23. august 2000 - 21:16 #22
Det er ligegyldigt for en godbid hvad den fysiske placering er på en server. De to sider, der skal kendes
ved godbidden, hvad hedder de?
Avatar billede brian Nybegynder
24. august 2000 - 00:53 #23
Her skrives der til den lille kage :
/kontrol/test1.htm

Her skulle der læses fra kagen :
/_vti_bin/shtml.exe/kontrol/testslut.htm

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