Avatar billede rasmusp Nybegynder
17. april 2003 - 13:26 Der er 17 kommentarer og
1 løsning

Form felter der ligger ovenpå hinanden

Hej!

Jeg har et problem som jeg har kæmpet med i 5 timer, så jeg må se i øjnene at jeg har brug for hjælp!

Ex.: Jeg vil liste en masse varer som man kan tilføje/fjerne fra sin indkøbskurv. Når man ser varen skal man kunne trykke "Tilføj". Efter at have tilføjet skal man kunne fjerne den igen ved tryk på "Fjern" UDEN at siden reloades (meget vigtigt). Det kan jeg nu også godt få til at virke med den kode jeg har strikket sammen (se nedenfor), men ... hvordan får jeg "Fjern" linket til at starte samme sted (x,y) som "Tilføj" linket? Man kan gøre det med en "margin-left" style, det virker fint, men når teksten til hhv. Tilføj/Fjern skal hives dynamisk ud af en database og skal kunne sprogversioneres, så virker den løsning ikke, da positioneringen så vil være forskellig afhæning af sprog (tekst). Nogle ideer til hvordan man lægger de 2 knapper ovenpå hinanden fremfor efter hinanden?

--------------- KODE START ---------------

<style>
.clsNode_link_add {FONT: 10px verdana, arial; COLOR: #000099; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: none}
.clsNode_link_add_onmouseover {FONT: 10px verdana, arial; COLOR: #000099; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; LEFT:0; position: static; TEXT-DECORATION: underline; CURSOR: pointer;}

.clsNode_link_remove {FONT: 10px verdana, arial; COLOR: #FF0000; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: none}
.clsNode_link_remove_onmouseover {FONT: 10px verdana, arial; COLOR: #FF0000; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: underline; CURSOR: pointer;}
</style>

<SCRIPT LANGUAGE="JavaScript">
<!--
function tree_handle_click()
{
  if (document.getElementById('remove').style.visibility != "hidden")
  {
    document.getElementById('remove').style.visibility = "hidden";
    document.getElementById('add').style.visibility = "visible";
  }
  else
  {
    document.getElementById('remove').style.visibility = "visible";
    document.getElementById('add').style.visibility = "hidden";
  }
}
// -->
</SCRIPT>

<TABLE cellspacing='0' cellpadding='0' width='100%' align='center' border='0'>
    <TR>
        <TD class='bodytext'>
            <FORM>
                Udstødning til Audi 80 2.8
                <input id="add"
                type="button"
                class="clsNode_link_add"
                value="Tilføj til indkøbskurv"
                onmouseover="this.className='clsNode_link_add_onmouseover'"
                onmouseout="this.className='clsNode_link_add'"
                onclick="tree_handle_click()"/>
                <input id="remove"
                type="button"
                class="clsNode_link_remove"
                value="Fjern fra indkøbskurv"
                style="visibility: hidden"
                onmouseover="this.className='clsNode_link_remove_onmouseover'"
                onmouseout="this.className='clsNode_link_remove'"
                onclick="tree_handle_click()"/>
            </FORM>
        </TD>
</TABLE>

--------------- KODE SLUT ---------------

Håber på en god løsning (der både skal virke i Mozilla (Netscape) og IE5+, gerne IE4+.

På forhånd tak :)

- Rasmus
Avatar billede hmm10 Nybegynder
17. april 2003 - 13:50 #1
Hvilken kodningsform køre side i? er det i en php-array-løkke?
Avatar billede rasmusp Nybegynder
17. april 2003 - 14:13 #2
Lige nu er det ASP jeg roder med, men det skal også virke med Java/XML/XSLT.
Avatar billede olebole Juniormester
17. april 2003 - 15:41 #3
<ole>

<style>
.clsNode_link_add {FONT: 10px verdana, arial; COLOR: #000099; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: none}
.clsNode_link_add_onmouseover {FONT: 10px verdana, arial; COLOR: #000099; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; LEFT:0; position: static; TEXT-DECORATION: underline; CURSOR: pointer;}

.clsNode_link_remove {FONT: 10px verdana, arial; COLOR: #FF0000; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: none}
.clsNode_link_remove_onmouseover {FONT: 10px verdana, arial; COLOR: #FF0000; BACKGROUND-COLOR: #FAFAFA; BORDER-STYLE: none; position: static; TEXT-DECORATION: underline; CURSOR: pointer;}
</style>

<SCRIPT LANGUAGE="JavaScript">
<!--
function tree_handle_click()
{
  if (document.getElementById('remove').style.display != "none")
  {
    document.getElementById('remove').style.display = "none";
    document.getElementById('add').style.display = "inline";
  }
  else
  {
    document.getElementById('remove').style.display = "inline";
    document.getElementById('add').style.display = "none";
  }
}
// -->
</SCRIPT>

<TABLE cellspacing='0' cellpadding='0' width='100%' align='center' border='0'>
    <TR>
        <TD class='bodytext'>
            <FORM>
                Udstødning til Audi 80 2.8
                <input id="add"
                type="button"
                class="clsNode_link_add"
                value="Tilføj til indkøbskurv"
                onmouseover="this.className='clsNode_link_add_onmouseover'"
                onmouseout="this.className='clsNode_link_add'"
                onclick="tree_handle_click()"/><input id="remove"
                type="button"
                class="clsNode_link_remove"
                value="Fjern fra indkøbskurv"
                style="display: none"
                onmouseover="this.className='clsNode_link_remove_onmouseover'"
                onmouseout="this.className='clsNode_link_remove'"
                onclick="tree_handle_click()"/>
            </FORM>
        </TD>
</TABLE>

/mvh
</bole>
Avatar billede olebole Juniormester
17. april 2003 - 15:42 #4
PS: Læg mærke til denne linie:
  onclick="tree_handle_click()"/><input id="remove"
Undlad at dele de to inputs på to linier ... så vil de 'animere' i forhold til hinanden  ;o)
/mvh
Avatar billede rasmusp Nybegynder
17. april 2003 - 15:59 #5
Hej Ole,

Tak for hurtigt og effektivt svar. Det virker til UG! De 200 point er hermed dine!

I øvrigt: Jeg undlod ved en fejl at bruge position: static som du havde indsat i mit CSS, og det virkede fint uden?

mvh
Rasmus
Avatar billede olebole Juniormester
17. april 2003 - 16:07 #6
Selvtak .... hvis du kikker i CSS'en i din oprindelige post, vil du se, jeg ikke har rettet i den - 'static' er du selv 'skyldig i'  ;o))
/mvh
Avatar billede rasmusp Nybegynder
17. april 2003 - 16:12 #7
Ups.... :)
Avatar billede rasmusp Nybegynder
17. april 2003 - 16:14 #8
PS. Ville man kunne lave samme funktionalitet uden brug af form elementer, d.v.s. med rent <a href=""> links?
Avatar billede olebole Juniormester
17. april 2003 - 16:37 #9
Yups .... det skulle ikke kunne give dig problemer. Du ville endda kunne lave dine mouseover/out-events i CSS, hvilket er langt mere effektivt  :)
/mvh
Avatar billede rasmusp Nybegynder
17. april 2003 - 16:40 #10
Det har jeg ikke lige styr på hvordan man gør. Gider du evt. lave rettelsen for mig mod en bunke point? 8o)
Avatar billede olebole Juniormester
17. april 2003 - 17:13 #11
Så må du vise mig funktionen 'tree_handle_click()'. Hvad points angår, har jeg allerede fået en bunke  :)
/mvh
Avatar billede rasmusp Nybegynder
17. april 2003 - 17:20 #12
Super - men hvad mener du med "vise mig funktionen 'tree_handle_click()'" ? Hvis du mener om jeg har noget kode som jeg ikke har inkluderet, så har jeg ikke lavet mere end det viste (endnu).
Avatar billede olebole Juniormester
17. april 2003 - 17:55 #13
<style>
.clsNode_link_add, .clsNode_link_remove {
    font: 10px verdana, arial;
    background-color: #FAFAFA;
    margin-left: 10px;
}
a.clsNode_link_add {
    color: #000099;
    text-decoration: none;
}
a.clsNode_link_add:visited {
    color: #000099;
    text-decoration: none;
}
a.clsNode_link_add:hover {
    color: #000099;
    text-decoration: underline;
}
a.clsNode_link_remove {
    color: #ff0000;
    text-decoration: none;
}
a.clsNode_link_remove:visited {
    color: #ff0000;
    text-decoration: none;
}
a.clsNode_link_remove:hover {
    color: #ff0000;
    text-decoration: underline;
}
</style>

<SCRIPT LANGUAGE="JavaScript">
<!--
function gE(id) {return document.getElementById(id)}
function tree_handle_click(elm) {
    var aID = elm.id.split("_");
    if (aID[0]=="add") {
        gE("add_"+aID[1]).style.display = "none";
        gE("rem_"+aID[1]).style.display = "inline";
    } else {
        gE("add_"+aID[1]).style.display = "inline";
        gE("rem_"+aID[1]).style.display = "none";
    }
}
// -->
</SCRIPT>

<TABLE cellspacing='0' cellpadding='0' width='100%' align='center' border='0'>
<TR>
    <TD class='bodytext'>
        Udstødning til Audi 80 2.8
        <a href="#" id="add_0" class="clsNode_link_add"
            onclick="tree_handle_click(this);return false">Tilføj til indkøbskurv</a><a
        href="#" id="rem_0" style="display:none" class="clsNode_link_remove"
            onclick="tree_handle_click(this);return false">Fjern fra indkøbskurv</a>
    </TD>
</TR>
</TABLE>
Avatar billede olebole Juniormester
17. april 2003 - 17:57 #14
De næste to links kalder du 'add_1' og 'rem_1' ... osv. Så håndterer funktionen autometisk parrene.
/mvh
Avatar billede rasmusp Nybegynder
17. april 2003 - 20:13 #15
Super. Mange, mange tak :-)
Avatar billede olebole Juniormester
17. april 2003 - 20:57 #16
... anytime  ;o)
Avatar billede rasmusp Nybegynder
29. april 2003 - 20:17 #17
Hej Ole,

Vi sidder og bokser med noget javascript og skal få js til at klikke på et link UDEN at siden reloades. Kan du hjælpe?

Tak ... :)

Rasmus
Avatar billede olebole Juniormester
29. april 2003 - 20:25 #18
Sidder udenfor rækkevidde af en tlf. lige nu .... kan du ikke smide en e-mail-adresse?  :)
/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