Avatar billede wzarlon Nybegynder
03. januar 2004 - 14:29 Der er 14 kommentarer og
2 løsninger

Behavior ved onlick

Hej javascript eksperter :)

Jeg kommer herover i jeres kategori da jeg sidder og roder med et "for sjov biograf online bookinsystem".

Jeg har oprettet systemet til nu at skrive salen ud og farve sædet afhængigt om det er optaget eller ej. (Grøn/rød)
(Laves serverside)

På clientside vil jeg så godt sætte en/flere funktioner op som først om fremmest gør:
- (Hvis sæde = ledigt(=farve grøn) så når Onclick på sæde, farv sæde gult)
- I samme ombærring skal værdi fra Onclick sæddet overføres til et textarea eller input felt, som jeg kan sende videre til en anden side hvor jeg vil reserverere dem i databasen. (Dette textarea/input felt skal kunne indeholde mange sæder, og ved hvert onclick skille værdierne med et , ).

-Hvis sæddet nu er gult, og man trykker på det, skal det gå tilbage til normal tilstand = farve grøn, og value skal slettes fra textarea/input

-Hvis sæddet er rødt skal der ikke være en onclick funktion.


Er disse ting mulige, og er der en venlig sjæl som vil guide mig på vej her?
(Eneste ting jeg har kunne lave af disse, er at den på onclick skal gribe value og smide det over i textarea, men det er ret langt fra mit mål :)  )

Eksempel på biografen kan ses her.
http://www.wzarlon.dk/BIO/vissal.asp?filmnavn1=7&forestillingsdag=01-jan-04&forestillingstid=2&salid=1&salnavn=Den+Store+Sal
Avatar billede nyp Nybegynder
03. januar 2004 - 16:49 #1
er det noget i denne stil du mener:

function addseatFunktion(obj, objValue)
{
if (obj.style.backgroundColor=="green"){   
    obj.style.backgroundColor="yellow";
    addseat(objValue);
}
{
if (obj.style.backgroundColor=="yellow"){   
    obj.style.backgroundColor="green";
}
{
if (obj.style.backgroundColor=="red"){   
    return;
}

}
Avatar billede skovenborg Nybegynder
03. januar 2004 - 17:27 #2
Du kan fikse den med kommaet sådan her (ikke testet):

<script type="text/javascript">
function addseat(Num)
{
FKeyPad = document.saeder.pladsbestillinger;
if (FKeyPad.value.length > 0) FKeyPad.value += ","+Num;
else FKeyPad.value = Num;
}
</script>
Avatar billede skovenborg Nybegynder
03. januar 2004 - 17:42 #3
kædet sammen kunne de to funktioner se sådan ud:
function addseat(obj,Num)
{
FKeyPad = document.saeder.pladsbestillinger;
if (obj.style.backgroundColor=="green")
{
        obj.style.backgroundColor="yellow";
        if (FKeyPad.valueOf(Num) == -1)
        {
            if (FKeyPad.value.length > 0) FKeyPad.value += ","+Num;
            else FKeyPad.value = Num;
        }
}
else if (obj.style.backgroundColor =="yellow")
{
    obj.style.backgroundColor="green";
}
else;
}

Ved hver knap skal du skrive:
onclick="addseat(this,10.7)" (eller hvad sædet nu hedder)
Avatar billede skovenborg Nybegynder
03. januar 2004 - 17:44 #4
undskyld det skulle være:
FKeyPad.value.indexOf(Num) == -1
i stedet ;-)
Avatar billede wzarlon Nybegynder
03. januar 2004 - 21:36 #5
den var lige i øjet den der skovenborg. Tak. :)

giver du et svar
Avatar billede wzarlon Nybegynder
03. januar 2004 - 21:38 #6
Og dog. Den fjerner dog ikke værdien igen fra textarea feltet, hvis tryk på gul knap
Avatar billede roenving Novice
03. januar 2004 - 22:04 #7
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Biograf-sæder</title>
<meta name="keywords" content="søgeord adskilt af komma">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">

</style>
<script language="javascript" type="text/javascript">
function reserveSeat(img){
  var reg = new RegExp(img.id,"gi");
  var txt = document.getElementById('reservedSeats');
  if(txt.value.match(reg)){
    txt.value = txt.value.replace(reg,"");
    txt.value = txt.value.replace(/\,\,/g,",");
    txt.value = txt.value.replace(/^\,/,"");
    img.style.borderColor="green";
  }else if(img.style.borderColor=="red")return;
  else{
    img.style.borderColor="yellow";
    txt.value += (txt.value=="")?img.id:","+img.id;
  }
}
</script>
</head>
<body onresize onload>
<img id="1s1" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)">
<img id="1s2" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)">
<img id="1s3" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid red;" onclick="reserveSeat(this)">
<img id="1s4" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid red;" onclick="reserveSeat(this)">
<img id="1s5" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)"><br>

<img id="2s1" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)">
<img id="2s2" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)">
<img id="2s3" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid red;" onclick="reserveSeat(this)">
<img id="2s4" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid red;" onclick="reserveSeat(this)">
<img id="2s5" src="../eksperten_logo_new.gif" style="height:25px;width:22px;border:3px solid green;" onclick="reserveSeat(this)"><br>

<br>
<textarea name="reservedSeats" id="reservedSeats" cols="40" rows="5" disabled="true"></textarea>
</body>
</html>
Avatar billede roenving Novice
03. januar 2004 - 22:08 #8
-- og for lige at få´det hele med:

<script language="javascript" type="text/javascript">
function reserveSeat(img){
  var reg = new RegExp(img.id,"gi");
  var txt = document.getElementById('reservedSeats');
  if(txt.value.match(reg)){
    txt.value = txt.value.replace(reg,"");
    img.style.borderColor="green";
  }else if(img.style.borderColor=="red")return;
  else{
    img.style.borderColor="yellow";
    txt.value += (txt.value=="")?img.id:","+img.id;
  }
    txt.value = txt.value.replace(/\,\,/g,",");
    txt.value = txt.value.replace(/^\,/,"");
    txt.value = txt.value.replace(/\,$/,"");
}
</script>
Avatar billede wzarlon Nybegynder
04. januar 2004 - 12:01 #9
Jeg har umiddelbart svært ved at se hvad din funktion gør Roenving.

Kan man ikke nemt lave en tilføjelse til Skovenborg's i afsnittet:

else if (obj.style.backgroundColor =="yellow")
{
TRÆK ","+ Num fra  FKeyPad.value
    obj.style.backgroundColor="green";
}
Avatar billede roenving Novice
04. januar 2004 - 16:49 #10
Det er det disse linjer gør:

    txt.value = txt.value.replace(reg,"");
    txt.value = txt.value.replace(/\,\,/g,",");
    txt.value = txt.value.replace(/^\,/,"");

-- men den nemmeste måde at finde og erstatte på er at oprette en regexp til det, derfor mit løsningsforslag:

  var reg = new RegExp(""+Num,"gi");

ville det være ud fra skovenborgs !-)

-- og jeg udnytter jo også bare, at det er hensigtsmæssigt at navngive alle sæde-img-objekterne, så oplysningen om hvilket sæde, det er, kan lige så godt hentes fra den navngivning !-)
Avatar billede skovenborg Nybegynder
04. januar 2004 - 20:10 #11
sammensat er det vel:
function addseat(obj,Num)
{
FKeyPad = document.saeder.pladsbestillinger;
if (obj.style.backgroundColor=="green")
{
        obj.style.backgroundColor="yellow";
        if (FKeyPad.value.indexOf(Num) == -1)
        {
            if (FKeyPad.value.length > 0) FKeyPad.value += ","+Num;
            else FKeyPad.value = Num;
        }
}
else if (obj.style.backgroundColor =="yellow")
{
    obj.style.backgroundColor="green";
        var reg = new RegExp(""+Num,"gi");
        FKeyPad.value = FKeyPad.value.replace(reg,"");
        FKeyPad.value = FKeyPad.value.replace(/\,\,/g,",");
        FKeyPad.value = FKeyPad.value.replace(/^\,/,"");
}
else;
}

Så må du bare vælge den der kræver mindst ekstra tastearbejde.
Avatar billede wzarlon Nybegynder
05. januar 2004 - 18:21 #12
roenving>>Læækkert! Ok, den er bare helt iorden den funktion. Det virker lige som det skal.
Jeg har brugt div istedet for img.

Giver i ik begge svar, da i begge havde rigtige løsningsforslag til mit problem

Det var nok roenving's der krævede mest skrive arbejde, men så begynder jeg da også at fatte lidt mere af javascript på denne måde :o

tak til jer begge
Avatar billede roenving Novice
05. januar 2004 - 18:41 #13
Velbekomme '-)
Avatar billede skovenborg Nybegynder
05. januar 2004 - 20:15 #14
også velbekomme her :-)
Avatar billede skovenborg Nybegynder
05. januar 2004 - 20:15 #15
...nåja, jeg skal lige svare ;-)
Avatar billede roenving Novice
20. marts 2004 - 20:15 #16
-- og tak for points ;~}
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