Avatar billede aerobee Nybegynder
08. juli 2005 - 20:19 Der er 50 kommentarer og
1 løsning

Marker alle checkboxe med et klik

Hejsa.

Jeg har lavet en formular hvori der er checkboxe.

Og her kommer mine spørgsmål:

1. Kunne godt bruge et script der gør sådan at man kan nøjes med at klikke på 1 knap/link og så bliver alle checkboxe markeret... (hvis der nu f.eks er 50 checkboxe. Trist at skulle klikke på hver enkelt) ?

2. Ydermere kunne jeg også godt bruge et script der gør sådan at når man markere en checkbox kommer der en <strike> over den tekst der står ud foran checkboxen (altså f.eks en rød streg der viser at den post er markeret til sletning)

Spørgsmål 1 giver 30 points, spørgsmål 2 giver 60 points. Svarer du på begge får du altså 90 points :)
Avatar billede aerobee Nybegynder
08. juli 2005 - 20:37 #1
Har selv løst spørgsmål 1..

Mangler nu bare spørgsmål 2 til 60 points :)
Avatar billede softspot Forsker
08. juli 2005 - 21:22 #2
Du kunne sætte style på den tekst der skal streges igennem.

Kan du ikke smide noget HTML så eksemplet kan baseres på den kode det skal integreres i?
Avatar billede softspot Forsker
08. juli 2005 - 21:25 #3
Du kan sætte din style på teksten der skal overstreges til:

text-decoration: line-through;

Det skulle strege den igennem...
Avatar billede aerobee Nybegynder
08. juli 2005 - 21:28 #4
Den her...

<td><a href="members/resultat.asp?MemberID=<%=tab(i+1,5)%>"><%=left(tab(i+1,3),10)%></a></td><td><%if tab(i+1,6)=0 then%><a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>"><img src="images/mail-unread.gif" border="0"></a><%else%><a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>"><img src="images/mail-read.gif" border="0"></a><%end if%></td><td><a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>"><%=left(tab(i+1,4),25)%></a></td><td><%=tab(i+1,7)%>&nbsp;kl.&nbsp;<%=tab(i+1,8)%></td><td align="right"><input type="checkbox" value="<%=tab(i+1,1)%>" name="delmail"></td></tr>

Meget uoverskueligt her, men det er det hele vi snakker om.
Det er database udtræk så det er ikke en fast tekst.
Avatar billede aerobee Nybegynder
08. juli 2005 - 21:28 #5
Den skal kun streges over hvis den bliver markeret i checkboxen
Avatar billede roenving Novice
08. juli 2005 - 21:45 #6
Tjah, hvis du nu havde startet med at stille spørgsmålet i javascript, kunne det være, at du havde fået hurtigere hjælp, specielt, når det drejer sig om besværligheder som dette, men f.eks.

<table>
  <tr>
    <td>
      <a href="members/resultat.asp?MemberID=<%=tab(i+1,5)%>"><%=left(tab(i+1,3),10)%></a></td>
    <td>
      <%if tab(i+1,6)=0 then%>
      <a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>"><img src="images/mail-unread.gif" border="0"></a>
      <%else%>
      <a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>"><img src="images/mail-read.gif" border="0"></a>
      <%end if%></td>
    <td>
      <a href="save.asp?action=laspost&PostID=<%=tab(i+1,1)%>&AfsenderID=<%=tab(i+1,5)%>">Denne tekst skal strikes<%=left(tab(i+1,4),25)%></a></td>
    <td>
      <%=tab(i+1,7)%>&nbsp;kl.&nbsp;<%=tab(i+1,8)%></td>
    <td align="right">
      <input type="checkbox" value="<%=tab(i+1,1)%>" name="delmail" onclick="markDelete(this)"></td>
  </tr>
</table>

<script type="text/javascript">
function markDelete(elm){
  var par = elm.parentNode;
  var linkCell = par.previousSibling.previousSibling;
  linkCell.getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"underline";
}
</script>

-- hvis jeg har misforstået noget af det, må du jo sige til !-)
Avatar billede steent Nybegynder
08. juli 2005 - 21:49 #7
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return "Uncheck All"; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return "Check All"; }
}



En checkbox til formålet
<input type=button value="Check All" onClick="this.value=check(this.form.list)">
Avatar billede aerobee Nybegynder
08. juli 2005 - 21:53 #8
Har selv løst den der steent, sorry :P
Avatar billede aerobee Nybegynder
08. juli 2005 - 21:54 #9
roenving/

Skal lige lure lidt på den der først.. Udmiddelbart ser det ud som den ikke markere alt.. Skal lige kigge på den først før jeg kan sige om jeg kan bruge den.
Avatar billede roenving Novice
08. juli 2005 - 21:56 #10
-- nej, den markerer ikke alt, men jeg var heller ikke sikker på, hvad det var du ville have overstreget ...
Avatar billede aerobee Nybegynder
08. juli 2005 - 21:58 #11
ALT skal overstreges :) Hele den streng der er pastet oven over
Avatar billede roenving Novice
08. juli 2005 - 22:08 #12
Det kan du kun ved at have en masse skjulte ting, og lægge noget flydende grafik henover, og det vil jeg absolut ikke anbefale ...

-- men det er vel også tilstrækkeligt, at tekst-stumperne, som angiver emne og tidspunkt får en overstregning, for billederne kan man slet ikke lave nummeret på uden ovenstående !-)
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:14 #13
Okay. Så er det tab 1 2 7 og 8 vi snakker om som er tekst stumper der skal <strike>´s :)
Kan du se hvilke jeg mener ud fra ovenstående streng?
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:18 #14
Nej nej.. Det er tab 3 4 7 og 8.. IKKE 1 og 2.

Det er dem her der skal strikes så :)

-----Udtræk af koden------
<%=left(tab(i,3),10)%>
<%=left(tab(i,4),25)%>
<%=tab(i,7)%>&nbsp;kl.&nbsp;<%=tab(i,8)%>
-----Udtræk af koden------
Avatar billede roenving Novice
08. juli 2005 - 22:25 #15
1 vises jo slet ikke, så den kan vi ikke overstrege (den forekommer kun i links og som value !-)

2 findes slet ikke i den linje, du viser ...

-- og jeg gættede på at det var de der første 25 tegn af 4, som var overskrift i posten ...

-- men måske er de første 10 bogstaver af 3 også noget som skal overstreges, jeg tænkte bare, at det så ud som et brugernavn, og så skulle det ikke se ud som om den pågældende blev slettet !o]

Men også med tidspunkt overstreget:

<script type="text/javascript">
function markDelete(elm){
  var par = elm.parentNode;
  par.previousSibling.style.textDecoration = elm.checked?"line-through":"none";
  var linkCell = par.previousSibling.previousSibling;
  linkCell.getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"underline";
  //måske med den første celle overstreget også
  par.parentNode.getElementsByTagName("TD")[0].getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"underline";
}
</script>
Avatar billede roenving Novice
08. juli 2005 - 22:29 #16
Ha, jeg glemte lige et lille finurligt trick, som sokkert er ganske godt at bruge her:

<script type="text/javascript">
function markDelete(elm){
  var par = elm.parentNode;
  par.previousSibling.style.textDecoration = elm.checked?"line-through":"";
  var linkCell = par.previousSibling.previousSibling;
  linkCell.getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"";
  //måske med den første celle overstreget også
  par.parentNode.getElementsByTagName("TD")[0].getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"";
}
</script>
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:37 #17
roenving//

Men jeg forstår stadig ikke den du skrev kl 21:45:07

"Denne tekst skal strikes" <--- jamen jeg skal jo ikke skrive noget manuelt der skal strikes.. det er dem jeg skrev kl 22:18:38 der skal strikes med markering i checkbox
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:39 #18
<%=left(tab(i,3),10)%> <--- ,10 definer max char i den tabel celle den er i. i,3 er Brugernavnet...
Avatar billede roenving Novice
08. juli 2005 - 22:39 #19
Jeg har jo ikke resultatet af dine database-opslag, så jeg skulle skrive noget, så jeg kunne se, at der skete noget, da jeg testede, jeg var jo også nødt til at folde koden ud, for at kunne overskue den samt gøre det til en fuld tabel !-)
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:40 #20
Kan du følge mig? Bruger altså tabs istedet for at skrive =rs("Brugernavn") =rs("emne") osv
Avatar billede roenving Novice
08. juli 2005 - 22:43 #21
Ja, men prøv nu at indsætte

onclick="markDelete(this)" i checkbox-tagget og så indsætte javascriptet på siden !-)
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:49 #22
hehe du er jo genial roenving, it works like a charm.
Som du nok har forstået er jeg ikke den bedste til javascript, men gid jeg var :)
Men hvad skal jeg ændre for at få stregen rød?

Og smid da lige et svar.. Du får squ alle 90 points da du har lagt så meget i det :P
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:52 #23
Mht mit spørgsmål nr 1.. Der har jeg jo lavet sådan at med klik på en knap bliver alle checkboxe markeret, men der virker strike ikke?
Avatar billede roenving Novice
08. juli 2005 - 22:52 #24
Man kan desværre ikke kontrollere stregens farve selvstændigt, så den vil altid få den farve teksten har (hvilket du måske allerede har lagt mærke til, hvis du bruger en særlig farve til links !-)

-- måske en senere (meget senere !-) version af css vil understøtte den slags !o]

-- els velbekomme '-)
Avatar billede roenving Novice
08. juli 2005 - 22:55 #25
-- næh, hrm, hrm, tjah, bom bom ...

-- hvordan ser din kode til Markér Alle ud, for vi skal jo have fat i alle checkboxene, og så kan vi derfra kalde markDelete !-)
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:57 #26
Det til "vælg alle" ser således ud

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var checkflag = "false";
function check(field) {
if (checkflag == "false") {
for (i = 0; i < field.length; i++) {
field[i].checked = true;}
checkflag = "true";
return "Vælg Alle"; }
else {
for (i = 0; i < field.length; i++) {
field[i].checked = false; }
checkflag = "false";
return "Vælg Alle"; }
}
//  End -->
</script>

<input type="button" value="Vælg Alle" onClick="this.value=check(emails)">
Avatar billede aerobee Nybegynder
08. juli 2005 - 22:59 #27
Og mht det script der (vælg alle)
Kan jeg ikke lave det om så det bliver et billede eller bare et simpelt X i stedet for en button.. Den er jo så stor hehe
Avatar billede roenving Novice
08. juli 2005 - 23:10 #28
-- okay, jeg ville nok lige gøre noget andet, nemlig sådan:

<span id="alle">Vælg Alle </span><input type="checkbox" onclick="selectAll(this)">

<script type="text/javascript">
function selectAll(elm){
  var inps = document.getElementsByTagName("INPUT");
  var chck = elm.checked;
  for(i=0;inps.length>i;i++){
    if(inps[i].type=="checkbox"&&inps[i].name=="delmail"){
      inps[i].checked = chck;
      markDelete(inps[i]);
    }
  }
  document.getElementById('alle').innerHTML = chck?"Fjern Alle ":"Vælg Alle ";
}
</script>

-- og tak for point ;~}
Avatar billede roenving Novice
08. juli 2005 - 23:12 #29
PS. Du kan selvfølgelig godt fjerne span-tagget, så skal du bare huske også at fjerne den sidste linje, hvor indholdet ændres !-)
Avatar billede aerobee Nybegynder
08. juli 2005 - 23:13 #30
Hehe du er squ skrap til javascript :)

Many thanks for all your help.
Avatar billede roenving Novice
08. juli 2005 - 23:19 #31
U'r welcome ;O)
Avatar billede aerobee Nybegynder
09. juli 2005 - 09:38 #32
rownving er du her stadig?

Du skrev tidligere at man ikke kan farve striken fordi den har samme farve som teksten. Men kan man så ikke gøre det sådan at når man markerer en checkbox så bliver både strike og tekst rød?
Avatar billede roenving Novice
09. juli 2005 - 11:47 #33
Ja, man fordobler bare tildelingen af style-properties, f.eks.

  linkCell.getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"";
  linkCell.getElementsByTagName("A")[0].style.color = elm.checked?"red":"";
Avatar billede roenving Novice
09. juli 2005 - 11:47 #34
-- og der er så tre af dem, jeg viste kun den ene !-)
Avatar billede aerobee Nybegynder
09. juli 2005 - 11:53 #35
hvordan integrerer jeg det i den her?

<script type="text/javascript">
function markDelete(elm){
  var par = elm.parentNode;
  par.previousSibling.style.textDecoration = elm.checked?"line-through":"";
  var linkCell = par.previousSibling.previousSibling;
  linkCell.getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"";
  //måske med den første celle overstreget også
  par.parentNode.getElementsByTagName("TD")[0].getElementsByTagName("A")[0].style.textDecoration = elm.checked?"line-through":"";
}
</script>
Avatar billede aerobee Nybegynder
09. juli 2005 - 12:12 #36
Ha, den fiksede jeg squ selv :P
Ja ja, jeg kan stadig overraske mig selv :P

Vil du have flere points roenving? np
Avatar billede aerobee Nybegynder
09. juli 2005 - 12:19 #37
roenving//

Du ved måske forresten også hvordan jeg kan undgå at vise absolute URL i adresse linjen?
Altså f.eks må den ikke vise det her:
www.xxxxxx.dk/save.asp?action=slet
men kun
www.xxxxxx.dk

Og jeg vil helst ikke bruge frames
Avatar billede aerobee Nybegynder
09. juli 2005 - 12:21 #38
Og heller ikke iframes...

Måske er der et meta tag der kan klare det?
Avatar billede roenving Novice
09. juli 2005 - 12:37 #39
Du kan ikke undgå at adresselinjen viser den url, som det yderste vindue bruger (og netop med (i)frames kan det undgås !-)

-- men det er vel heller ikke nogen alvorlig katastrofe, at dine brugere kan se, at du slår op i databasen ?-)
Avatar billede aerobee Nybegynder
09. juli 2005 - 12:41 #40
hehe nej en katastofe er det ikke..

Tænkte bare om det var muligt uden at skulle tvinges til at bruge frames.

skal jeg ikke lige oprette et spørgsmål "points til roenving" så du kan få lidt flere, det har du fortjent med alt din hjælp og tålmodighed :)
Avatar billede roenving Novice
09. juli 2005 - 12:52 #41
Jeg synes nu også det er meget rart, at adresselinjen afspejler hvor man er henne/hvad man er i gang med, så find ikke på det med at skrive f.eks. d=kh673&u=ty28f&k=nndk86 osv. !-)
Avatar billede aerobee Nybegynder
09. juli 2005 - 12:57 #42
roenving//

Gå venligst hertil og smid et svar :P
http://www.eksperten.dk/spm/631525
Avatar billede thesurfer Nybegynder
09. juli 2005 - 13:50 #43
Man kunne undgå www.xxxxxx.dk/save.asp?action=slet f.eks. ved at submitte dataerne via method="post" og noget JavaScript..

<form name="frmaction" action="save.asp" method="post">
<input type="hidden" name="skjultaction" value="">
</form>

<a href="#" onclick="f=document.frmaction;f.skjultaction.value='slet';f.submit();return false;">noget tekst</a>

..men det er måske lidt langt ude.. :-)

/theSurfer
Avatar billede thesurfer Nybegynder
09. juli 2005 - 13:51 #44
..så skal du bare aflæse "skjultaction" med request.form("skjultaction") i stedet for request.querystring("action").. :-)

/theSurfer
Avatar billede aerobee Nybegynder
09. juli 2005 - 14:00 #45
Hehe en sjov ide.. Men så meget vil jeg nu ikke ligge i det det vil kræve at jeg skal redigere i (UHA) mange sider :)

Ellers nice thesurfer ;)
Avatar billede thesurfer Nybegynder
09. juli 2005 - 14:13 #46
Det er det man bruger include til.. :-)

Man bruger f.eks. bare <-- #include file="header.asp" --> i toppen af alle siderne.. så kan man lave nogle IF-sætninger, som udfører forskellige ting, afhængigt af hvad ens kriterier er :-)

Faktisk er det meget brugbart.. :-)

.. men jeg skrev jo "..men det er måske lidt langt ude..".. hehehe :-)

/theSurfer
Avatar billede aerobee Nybegynder
10. juli 2005 - 08:00 #47
roenving//

Du har vel ikke en email jeg kan kontakte dig på?
Har et lille problem, og så har jeg "lavet" noget jeg tror der vil interessere dig :)
Avatar billede roenving Novice
10. juli 2005 - 14:57 #48
-- min mail-adresse er offentlig, så gå du bare ind på min profil og debug den !-)
Avatar billede aerobee Nybegynder
10. juli 2005 - 18:56 #49
Har mailet til dig på ''roenving@gmail.com''
Eksisterer du ikke der længere?
Avatar billede roenving Novice
11. juli 2005 - 02:47 #50
Jeg er godt nok hamrende sur over, at du kan finde på at skrive min mail-adresse, når jeg netop selv sørger for, at den er ganske offentlig, men ikke for mail-harvesters (/&¤#W""¤#"&¤#YR#&%#¤W!E¤#"%&¤#&(%¤(#¤"¤%#!¤%###¤"¤&#
Avatar billede roenving Novice
11. juli 2005 - 06:08 #51
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