Avatar billede busschou Praktikant
19. marts 2005 - 13:45 Der er 25 kommentarer og
1 løsning

submitte en form ved at klikke på en celle i en tabel

Howdy

Hvis jeg har en tabel og inden i den laver hver celle som en <form>
Hvordan får jeg så den form til at submitte ved at klikke på cellen?
Jeg kan se på w3schools at <td> har event atributten onclick mm.
Men hvis jeg fx skriver <td onclick="this.form.submit();"> så sker der ingen ting og i explorer siger den fejl fordi this.form er null.
Jeg tror det er fordi at <td> som sådan ikke er en del af formen?
Jeg har forsøgt kalde formen for "test" og så skrive <td onclick="document.test.submit();">
Men så siger den at objektet ikke understøtter metoden
Kan det overhovedet lade sig gøre? Eller er eneste løsning at indsætte et blankt billede i hver celle eller en knap?
Jeg ville helst undgå dette.
Avatar billede apo Praktikant
19. marts 2005 - 14:02 #1
Jeg kender ikke meget til javascript, men jeg vil gætte på at cellen med onclick="this.form.submit();" skal befinde sig inden for formgrænserne:

<form><td onclick="this.form.submit();"></form>.

Apo
Avatar billede busschou Praktikant
19. marts 2005 - 14:05 #2
det gør den skam også allerede, så det er ikke det desværre
Avatar billede apo Praktikant
19. marts 2005 - 14:10 #3
Hvorfor vil du lave det på denne måde?
Avatar billede apo Praktikant
19. marts 2005 - 14:11 #4
Prøv evt. at vise den relevante kode...
Avatar billede busschou Praktikant
19. marts 2005 - 14:13 #5
Jeg har lavet en tabel ud fra en database i asp
Ideen er at det skal være et booking system
Når en celle er grøn kan den bookes ved at man klikker på den
Når en celle er rød kan den ikke bookes
Derfor har jeg brug for at lave alle de grønne celler til hver deres form som kan submittes hver for sig
Ideen er at en given celle repræsenterer et givent produkt en given dag
Jeg ville selvfølgelig snildt kunne sætte en knap ind på alle cellerne men det bliver ret grimt synes jeg
Avatar billede apo Praktikant
19. marts 2005 - 14:17 #6
Du kan jo selv definere hvordan din knap skal se ud (f.eks. kan du lave en grøn .gif med målene 30 x 20 pixels, eller i hvilken som helst størrelse)

Det kan være en løsning...
Avatar billede busschou Praktikant
19. marts 2005 - 14:17 #7
spørgsmålet er i sin enkelthed hvordan man får følgende til at virke
<table>
<tr>
  <td>OPTAGET</td>
  <form method="post" action="test.asp">
  <input type="hidden" name="dag" value="<%=date%>">
  <td onclick="this.form.submit();">LEDIG</td>
  </form>
</tr>
</table>
Avatar billede busschou Praktikant
19. marts 2005 - 14:19 #8
jeg kan sagtens lave et billede og bruge som knap...det er jeg med på helt 100!
Men det irriterer mig at det andet ikke virker når jeg synes det burde kunne lade sig gøre :o)
Avatar billede busschou Praktikant
19. marts 2005 - 14:20 #9
faktisk ser min kode således ud - da tabellen jo kun er baggrundsfarvet og ikke indeholder tekst:
<table>
<tr>
  <td bgcolor="#00FF00"></td>
  <form method="post" action="test.asp">
  <input type="hidden" name="dag" value="<%=date%>">
  <td bgcolor="#FF0000" onclick="this.form.submit();"></td>
  </form>
</tr>
</table>
Avatar billede apo Praktikant
19. marts 2005 - 14:23 #10
Det kender jeg udmærket til, men af og til må man overgive sig hvis der findes en måske mere optimal løsning :-)

Du kan f.eks. submitte via et image:

<input type="image" src="billede.png"> (W3-godkendt, se: http://www.w3.org/TR/html4/interact/forms.html#input-control-types )

Apo
Avatar billede apo Praktikant
19. marts 2005 - 14:26 #11
F.eks. sådan her:

<table>
<tr>
  <td bgcolor="#00FF00"></td>
  <form method="post" action="test.asp">
  <input type="hidden" name="dag" value="<%=date%>">
  <td bgcolor="#FF0000"><input type="image" src="billede.png" onclick="this.form.submit();"></td>
  </form>
</tr>
</table>
Avatar billede apo Praktikant
19. marts 2005 - 14:27 #12
Måske behøver du ikke anvende: onclick="this.form.submit();" (Jeg har ikke testet det)
Avatar billede busschou Praktikant
19. marts 2005 - 14:27 #13
Det bliver også min løsning hvis ikke der er nogen som kender en løsning på det andet.
Håbede bare her var en javascript haj tilstede hehe ;o)
Avatar billede busschou Praktikant
19. marts 2005 - 14:28 #14
problemet er jo også at tabellen er oprettet med procenter ...så skal jo også passe på med billeder og om de på nogle af brugernes skærme måske ødelægger tabellen
Avatar billede apo Praktikant
19. marts 2005 - 14:30 #15
Kan man ikke sætte images til f.eks.: height="100%" width="100%"?

Hvis dit billede kun er i en farve, vil det ikke se udstrukket ud.
Avatar billede apo Praktikant
19. marts 2005 - 14:30 #16
Jeg er desværre ikke javascript-haj :-/
Avatar billede busschou Praktikant
19. marts 2005 - 14:31 #17
hænger på lidt og ser om en anden kommer med et guldkorn...og ellers så bliver det billed løsningen
Avatar billede apo Praktikant
19. marts 2005 - 14:32 #18
Helt i orden ;-)
Avatar billede busschou Praktikant
19. marts 2005 - 14:56 #19
ok nu virker det i Firefox men ikke i Explorer
Har nu følgende:
--------------------------------
<table>
<tr>
  <td bgcolor="#00FF00"></td>
  <form method="post" action="test.asp" name="myForm">
  <input type="hidden" name="dag" value="<%=date%>">
  <td bgcolor="#FF0000" onclick="document.forms.myForm.submit()"></td>
  </form>
</tr>
</table>
--------------------------------------
Ved ikke længer om det er den rigtige kategori?
Men hvordan kommer det til at virke i explorer?
Det kan jo ikke være helt galt når det virker i Firefox
Avatar billede apo Praktikant
19. marts 2005 - 14:59 #20
Mangler du ikke ; efter submit()?
Avatar billede busschou Praktikant
19. marts 2005 - 15:01 #21
SMUKT
Så nemt kunne det gøres trods alt :o)
Tak for hjælpen og foreslagende. Siden du fandt den sidste bug må du hellere få point jo :o)
Avatar billede apo Praktikant
19. marts 2005 - 15:02 #22
Glad for at kunne hjælpe :-)

Apo
Avatar billede apo Praktikant
19. marts 2005 - 15:04 #23
Virker det hvis du skriver onclick="document.this.form.submit();"?

(Det tænkte jeg på for et stykke tid siden, men ved ikke om det virker)
Avatar billede busschou Praktikant
19. marts 2005 - 15:18 #24
nej så virker det ikke
Det er som om den åbenbart kun kan finde den hvis man giver den navnet
Det giver jo så det lille problem at hver celles form skal have sit eget navn men det er jo heldigvis nemt at løse :o)
Så jeg er en glad mand nu hehe
Avatar billede apo Praktikant
19. marts 2005 - 15:24 #25
Ja, det giver lidt mere arbejde, men hovedsagen er at det virker.

Godt at du er en glad mand nu, og tak for points :-)

Apo
Avatar billede olebole Juniormester
19. marts 2005 - 16:02 #26
<ole>

Det er kun form-elementer, der kan referere til formen med 'this.form'. Ingen andre elementer har den ringeste anelse om, de befinder sig i en form  :)

busschou >> Du må have lavet en anden fejl i (19/03-2005 14:56:13). Et semikolon i event-handleren har ingen indvirkning på det sted.

/mvh
</bole>
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