Avatar billede dannv Nybegynder
01. februar 2006 - 13:34 Der er 12 kommentarer og
1 løsning

Overføre data fra iframe til main frame

Hejsa,

Jeg har følgende script som hidtil har virket, men det gør det tilsyneladende ikke længere... :-(

function getValue(f){

  var val = "";
  ifrChecks = window.frames['list_frame'].document.analysis.idArray;
  for(i=0;ifrChecks.length>i;i++){
    if(ifrChecks[i].checked)
        val += ", " + ifrChecks[i].value;
  } 
 
  f.id_field.value = (val)?val.substring(2):"";
}

Denne henter en liste af værdier fra en iframe, på hvilke checkboxe der er 'hakket af'...
Men værdierne kommer ikke længere med over.. Er det nogen der har et skudsikkert alternativ??

Dann
Avatar billede roenving Novice
01. februar 2006 - 13:39 #1
Hvad har du da ændret ?-)

-- hedder din iframe stadig list_frame, formen i iframen analysis og checkboksene idArray ?o]
Avatar billede olebole Juniormester
01. februar 2006 - 13:40 #2
<ole>

Det er svært at sige uden at vide, hvordan det bruges - og hvad der aktuelt ligger i de enkelte referencer og variabler

/mvh
</bole>
Avatar billede softspot Forsker
01. februar 2006 - 13:41 #3
Hvis du har mulighed for at kalde tilbage fra din iframe istedet, så sker tingene og først nå siden er indlæst i din iframe. Så skal du bare have en funktion defineret i hovedsiden som kan modtage kaldet fra din iframe.

hovedside:

function getData(win) {
  // gør det der skal gøres
}


iframe-siden:

window.onload = function() {
  if(parent && parent.getData) parent.getData(window);
}
Avatar billede dannv Nybegynder
01. februar 2006 - 13:52 #4
Ok, jeg har lige prøve igen, den overfører kun data hvis der er mere end 1 checkbox at vælge i mellem i iframe...??? Hvordan kan det være...??
Avatar billede dannv Nybegynder
01. februar 2006 - 13:53 #5
Det vil sige at det faktisk virker, men som sagt, scrptet kræver at der er mindst 2 checkboxe...??
Avatar billede olebole Juniormester
01. februar 2006 - 13:53 #6
softspot >> Ville det ikke være lidt sært at teste på hvilke checkbokse, brugeren har afkrydset i det øjeblik, dokumentet er færdig-loaded? Det er nok ikke dér, fejlen ligger  ;o)
Avatar billede olebole Juniormester
01. februar 2006 - 13:54 #7
danny >> 01/02-2006 13:40:47  =)
Avatar billede dannv Nybegynder
01. februar 2006 - 14:05 #8
Som sagt så bliver data ikke overført fra iframe til main frame hvis der kun er et element min form. Jeg har lavet et workaround hvor jeg har et hidden text felt med samme name som mine checkboxe, og dette gør at der nu er to elementer.

Men ikke vanvittig elegant løsning...

roenvig, der er ikke ændret noget, scriptet må have opført sig på denne måde hele tiden jeg opdager det bare først nu, hvor der kun er et element i min iframe...
Avatar billede roenving Novice
01. februar 2006 - 14:06 #9
function getValue(f){

  var val = "";
  ifrChecks = window.frames['list_frame'].document.analysis.idArray;
  if(ifrChecks.length){
    for(i=0;ifrChecks.length>i;i++){
      if(ifrChecks[i].checked)
        val += ", " + ifrChecks[i].value;
    }
  }else if(ifrChecks)
    val = ", " + ifrChecks.value;
 
  f.id_field.value = (val)?val.substring(2):"";
}
Avatar billede softspot Forsker
01. februar 2006 - 14:06 #10
nej, jeg fokuserede også bare på forbindelsen til iframen og overså i processen muligvis det egentlige problem (jeg synes bare teknikken er så rar, så den skulle ud)...
Avatar billede dannv Nybegynder
01. februar 2006 - 14:22 #11
roenvig du er en champ, dette gjorde det takker..
Avatar billede roenving Novice
01. februar 2006 - 14:24 #12
Tjah, du har sikkert også oprindeligt spurgt efter noget, som kun skulle du med flere bokse !-)

-- els velbekomme '-)
Avatar billede roenving Novice
01. februar 2006 - 14:51 #13
-- og tak for point ;~}
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