Avatar billede mercutio Nybegynder
03. marts 2003 - 16:31 Der er 12 kommentarer og
1 løsning

Kan man få submittet to forms i to forskellige frames

Jeg har to frames med en form i hver og jeg vil have grebet begge forms i samme servlet... Kan det lade sig gøre og har nogen et bud på hvordan?
Avatar billede olebole Juniormester
03. marts 2003 - 16:35 #1
<ole>

Uddybning?

/mvh
</bole>
Avatar billede mortrr Praktikant
03. marts 2003 - 16:37 #2
Umiddelbart kan du ikke poste begge formularer på en gang til samme script, og få den til at processe begge som én.

Men du kunne ved submit på den ene formular hente alle værdier fra den anden, og lægge dem ind i hidden fields.

- Morten
Avatar billede mercutio Nybegynder
03. marts 2003 - 16:39 #3
ERhmm...
Det vigtige er bare at jeg i en servlet har adgang til alle værdier på siden og når jeg skriver siden mener jeg vel egentlig siderne eftersom de er sat op i to frames...
Så frame et har måske to felter og frame to har 20 felter når der bliver trykket submit i nederste frame vil jeg have oplysningerne fra øverste frame med i den servlet der bliver submittet til.
Avatar billede mercutio Nybegynder
03. marts 2003 - 16:39 #4
ok Morten men hvordan?
Avatar billede mercutio Nybegynder
03. marts 2003 - 16:40 #5
smutter hjem fra arbejde nu men tjekker igen senere i aften bare så ikke lige tror jeg har glemt jer =)
Avatar billede mortrr Praktikant
03. marts 2003 - 16:44 #6
du tilføjer to <input type="hidden" til den nederste, med navne der passer til den øverste formular (navnene behøver ikke være ens, men det gør det lidt lettere at gennemskue senere).

<script>
function HentFelter(inpForm) {
  inpForm.felt1.value=parent.frame1.formularen.felt1.value;
  inpForm.felt2.value=parent.frame1.formularen.felt2.value;
  return true;
}
<form unsubmit="return HentFelter(this)" ....>
<input type="hidden" name="felt1" value="">
<input type="hidden" name="felt2" value="">

- Morten
Avatar billede mercutio Nybegynder
04. marts 2003 - 08:16 #7
ok men kan det laves dynamisk jeg ved nemlig ikke altid hvad felterne hedder og hvor mange der er...
Avatar billede mortrr Praktikant
04. marts 2003 - 08:30 #8
Det kan du sådan set godt, men så skal du også dynamisk oprette det rigtige antal felter i form2. (De kan godt oprettes dynamisk i browseren, men det sikreste er at de oprettes server-side)

Det bedste vil være at lægge felterne fra formular1 forrest i formular2, så bliver der ikke noget problem med navne på felterne, og man kan hente direkte fra felt 0 til felt 0, felt 1 til felt 1 osv.
Det bliver vist noget lignende:
<script>
function HentFelter(inpForm) {
  elem1=parent.frame1.formularen.elements;
  for (i=0;i<elem1.length;i++) {
    inpForm.elements[i].value=elem1[i].value;
  }
  return true;
}
<form unsubmit="return HentFelter(this)" ....>

- Morten
Avatar billede mercutio Nybegynder
04. marts 2003 - 08:34 #9
Nu er jeg jo nok ret krævende men det kunne da være vildt smart hvis man ikke bare satte værdier i nederste form men derimod oprettede felterne med samme navn og så satte værdierne. Det må da også kunne gøres....
Avatar billede mortrr Praktikant
04. marts 2003 - 09:01 #10
Det kan det da.
Men som sagt så virker det ikke i alle browsere - kun nyere.
Bom bom... Sån?
<script>
function HentFelter(inpForm) {
  elem1=parent.frame1.formularen.elements;
  for (i=0;i<elem1.length;i  ) {
    newInput = document.createElement("INPUT");
    newInput.type="hidden";
    newInput.value=elem1[i].value;
    newInput.name=elem1[i].name;
    iForm.elements.appendChild(newInput);
  }
  return true;
}
<form unsubmit="return HentFelter(this)" ....>
Avatar billede mercutio Nybegynder
04. marts 2003 - 09:04 #11
ok det ser rigtig godt ud. lige lidt forklaring kræves =)
du sender inpForm med ind som er this fra nederste form men du siger iForm.elements.appendChild hvorfor iForm skulle det ikke være inpForm?
Avatar billede mortrr Praktikant
04. marts 2003 - 09:08 #12
Jo inpForm er rigtigt.
Avatar billede mercutio Nybegynder
04. marts 2003 - 09:16 #13
Jeg tror på det virker tester det senere. Tusind tak for hjælpen. :-)
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