Avatar billede yuksel Nybegynder
07. juni 2006 - 12:41 Der er 10 kommentarer og
1 løsning

xsl og input

hej igen.

jeg har lavet en input box i noget xsl som bliver vist i noget webside...

<INPUT type="checkbox">
<xsl:attribute name="onclick">
  <xsl:choose>
<xsl:when test="varenervalgt">koere(<xsl:value-of select="@id"/>)</xsl:when>   
<xsl:otherwise>sletkoere(<xsl:value-of select="@id"/>)</xsl:otherwise>
</xsl:choose></xsl:attribute>
</INPUT>


det er så meningen at når checkboxen er krydset skal den kalde
"koere" funktionen oven over (ikke vist her)

og når checkboxen er afkrydset skal den kalde funktionen
"sletkoere" som findes ovenover (ikke vist her)

men kan ikke rigtige finde ud af hvordan jeg styre det der med at den er checked eller nonchecked ?

håber nogen kan være behjælplig, sidder fast :(
Avatar billede softspot Forsker
07. juni 2006 - 13:01 #1
Hvordan ser din XML-struktur ud (den må indeholde indikationen af om checkboksen er afkrydset eller ej)?
Avatar billede yuksel Nybegynder
07. juni 2006 - 13:04 #2
jeg har ikke noget i min xml der indikere om checkboksen er afkrydset...
det er noget brugeren skal tage stilling til..

jeg har et blankt html side hvor alt efter om den er krydset af eller ej vil jeg eksevere noget kode..... men det er brugeren , jeg har ikke noget i xmlen..
Avatar billede yuksel Nybegynder
07. juni 2006 - 13:05 #3
jeg skal vel ikke skrive til min xml, når brugeren har afkrydset noget og modsat hvis brugeren har .....osv...
Avatar billede softspot Forsker
07. juni 2006 - 13:12 #4
Din XSLT bliver vel fodret med noget XML for at du kan generere dit HTML (det sker vel serverside?) og derfor skulle jeg mene at den XML indeholder en eller anden angivelse af om feltet er afkrydset.

Hvis du derimod tænker på at noget skal ske idet du klikker/afkrydser checkboksen i browseren, så skal du håndtere det på en anden måde, nemlig i clientside javascript. Det kunne f.eks. være såleds (inline og quick and dirty):

<input type="checkbox">
  <xsl:attribute name="onclick">if(this.checked){koere(<xsl:value-of select="@id"/>)}else {sletkoere(<xsl:value-of select="@id"/>)}</xsl:attribute>
</input>
Avatar billede yuksel Nybegynder
07. juni 2006 - 13:21 #5
mine 2 funktioner ser sådan ud:

    function setcookie(name){
        var days = 1
        var value= name
        if (days)    {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
    }
   
    function erasecookie(name){
    alert(name)
        setcookie(name,"",-1);
    }

når jeg krydser feltet kør den til
setcookie...og det ser ud til at det fungere

når jeg så afkrydser feltet kør den til..
erasecookie
men af et eller andet grund så kan den ikke slette en navn og værdi derfra ?

hvad gøre jeg galt :(
Avatar billede yuksel Nybegynder
07. juni 2006 - 13:22 #6
jeg har valg at bruge :
<input type="checkbox">
  <xsl:attribute name="onclick">if(this.checked){koere(<xsl:value-of select="@id"/>)}else {sletkoere(<xsl:value-of select="@id"/>)}</xsl:attribute>
</input>
Avatar billede softspot Forsker
07. juni 2006 - 14:39 #7
Ja, du kan bare lægge den scriptkode i en script-blok på siden (eller i et eksternt script) og så bruge den metode du skriver i dit sidste post til at kalde funktioner med...
Avatar billede yuksel Nybegynder
07. juni 2006 - 15:53 #8
Kan du ikke indlægge et svar :) og tak for hjælpen igen..

kan du se om der er noget galt med denne funktion ?
den sletter ikke ?

  function erasecookie(name){
    alert(name)
        setcookie(name,"",-1);
    }
Avatar billede softspot Forsker
07. juni 2006 - 15:58 #9
Det jeg kan se er at du sender flere parametre med til setcookie end du har defineret (det er der som sådan ikke noget galt i, men du aflæser bare ikke dine ekstra parametre i setcookie-funktionen og det er der noget galt i - i denne situation). Jeg kunne forestille mig at du skulle skrive noget i stil med dette:

    function setcookie(name){
        var days = (arguments.length > 2 ? arguments[2] : 1);
        var value = (arguments.length > 1 ? arguments[1] : '');
        if (days)    {
            var date = new Date();
            date.setTime(date.getTime()+(days*24*60*60*1000));
            var expires = "; expires="+date.toGMTString();
        }
        else
            var expires = "";

        document.cookie = name+"="+value+expires+"; path=/";
    }
Avatar billede yuksel Nybegynder
07. juni 2006 - 16:01 #10
det virker :) :) takker takker
Avatar billede softspot Forsker
07. juni 2006 - 16:13 #11
Super! Velbekomme 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
Kurser inden for grundlæggende programmering

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