14. marts 2006 - 08:44
Der er
26 kommentarer og 1 løsning
Marker afkrydsningfelter
Jeg har en række afkrydsningsfelter, som jeg gerne vil have markeret på en gang, ved et klik og dernæst kunne slette disse poster på et slet alt klik, kan det laves med jave-script?
Annonceindlæg tema
14. marts 2006 - 08:56
#1
Det kunne være noget i stil med dette: <script type="text/javascript"> function changeStatus(ctlArray, status) { for(var i = 0; i < ctlArray.length; i++) ctlArray[i].checked = status; } </script> <form> <input type="checkbox" name="chkTest"> værdi 1<br> <input type="checkbox" name="chkTest"> værdi 2<br> <input type="checkbox" name="chkTest"> værdi 3<br> <input type="checkbox" name="chkTest"> værdi 4<br> <input type="button" value="Vælg alle" onclick="changeStatus(this.form.chkTest,true)"> <input type="button" value="Fravælg alle" onclick="changeStatus(this.form.chkTest,false)"> </form>
14. marts 2006 - 09:00
#2
eller sådan med en Alle checkbox (samme grundform som softspot's kode): <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function checkAll(objChk) { obj = objChk.form.chkBox for(f=0;f<obj.length;f++) obj[f].checked=objChk.checked; } //--> </SCRIPT> <form name="myForm" method="post"> <input type="Checkbox" name="all" onclick="checkAll(this)" value="OK">Alle<br> <input type="Checkbox" name="chkBox" value="OK"><br> <input type="Checkbox" name="chkBox" value="OK"><br> <input type="Checkbox" name="chkBox" value="OK"><br> <input type="Checkbox" name="chkBox" value="OK"><br> <input type="Checkbox" name="chkBox" value="OK"><br> </form>
14. marts 2006 - 09:51
#3
Hm. det skal sættet ind i noget ASP script med loop ?? et forslag?
14. marts 2006 - 09:53
#4
Kan du være lidt mere specifik ifht. hvad det er du ønsker som output?
14. marts 2006 - 09:55
#5
Og hvis du kunne smide loopkoden herind også ville det være fedt...
14. marts 2006 - 10:10
#6
Her er tabellen med loop, jeg vil gerne have et afkrydsningfelt ud for hver post og et slet alle felt. Ved klik på slet post, slettes de makerede poster. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta http-equiv="Content-Language" content="da"> <title></title> </head> <body> <table width="699" cellpadding="5" height="1"> <tr> <td class="forside" vAlign="top" width="508" height="1"> <table border="0" cellpadding="0" cellspacing="0" width="505"> <tr> <td width="13"></td> <td width="469"> <p align="center"><font face="Arial Black" size="3">infobakke</font> </p> </td> <td width="14"></td> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="505"> <tr> <td width="23"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="65"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Status</font></b></td> <td width="130"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Modtager</font></b></p> </td> <td width="113"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Emne</font></b></p> </td> <td width="86"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Dato</font></b></p> </td> <td width="12"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="32"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Slet</font></b></td> <td width="25"> <p style="margin-top: 0; margin-bottom: 2"> Alle </td> </tr> <% colortable = "#F5F4E9,#F5f4e9" arrColors = split(colortable,",") rowidx = 0 do while not rs.eof colIdx = rowIdx mod 2 %> <tr> <td width="23" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="65" bgcolor="<%=arrColors(colIdx)%>"> <b><font face="Verdana" size="1" color="#CC6699"> <p style="margin-top: 4; margin-bottom: 0"> ... </font></b> </td> <td width="130" bgcolor="<%=arrColors(colIdx)%>"> <b><font face="Verdana" size="1" color="#CC6699"> <p style="margin-top: 0; margin-bottom: 2"> ... </font></b> </td> <td width="113" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="86" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="12" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="32" bgcolor="<%=arrColors(colIdx)%>"><p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="25" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> <input type="checkbox" name="C1" value="ON"> </td> </tr> <% rowidx = rowidx + 1 rs.movenext counter = counter + 1 loop %>
14. marts 2006 - 15:27
#7
Det kan måske ikke laves bare sådan?
14. marts 2006 - 15:39
#8
Noget i denne stil: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta http-equiv="Content-Language" content="da"> <title></title> </head> <body> <SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> <!-- function checkAll(objChk) { obj = objChk.form.C1 for(f=0;f<obj.length;f++) obj[f].checked=objChk.checked; } //--> </SCRIPT> <form name="myForm" method="post"> <table width="699" cellpadding="5" height="1"> <tr> <td class="forside" vAlign="top" width="508" height="1"> <table border="0" cellpadding="0" cellspacing="0" width="505"> <tr> <td width="13"></td> <td width="469"> <p align="center"><font face="Arial Black" size="3">infobakke</font> </p> </td> <td width="14"></td> </tr> </table> <table border="0" cellpadding="0" cellspacing="0" width="505"> <tr> <td width="23"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="65"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Status</font></b></td> <td width="130"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Modtager</font></b></p> </td> <td width="113"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Emne</font></b></p> </td> <td width="86"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Dato</font></b></p> </td> <td width="12"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="32"> <p style="margin-top: 0; margin-bottom: 2"><b><font face="Verdana" size="1">Slet</font></b></td> <td width="25"> <p style="margin-top: 0; margin-bottom: 2"> <input type="Checkbox" name="all" onclick="checkAll(this)" value="OK"> Alle </td> </tr> <% colortable = "#F5F4E9,#F5f4e9" arrColors = split(colortable,",") rowidx = 0 do while not rs.eof colIdx = rowIdx mod 2 %> <tr> <td width="23" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="65" bgcolor="<%=arrColors(colIdx)%>"> <b><font face="Verdana" size="1" color="#CC6699"> <p style="margin-top: 4; margin-bottom: 0"> ... </font></b> </td> <td width="130" bgcolor="<%=arrColors(colIdx)%>"> <b><font face="Verdana" size="1" color="#CC6699"> <p style="margin-top: 0; margin-bottom: 2"> ... </font></b> </td> <td width="113" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="86" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="12" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> </p> </td> <td width="32" bgcolor="<%=arrColors(colIdx)%>"><p style="margin-top: 3; margin-bottom: 0"> ... </td> <td width="25" bgcolor="<%=arrColors(colIdx)%>"> <p style="margin-top: 0; margin-bottom: 2"> <input type="checkbox" name="C1" value="ON"> </td> </tr> <% rowidx = rowidx + 1 rs.movenext counter = counter + 1 loop %> </form>
14. marts 2006 - 17:39
#9
Lige præcis :-) har du nogen ide om hvordan jeg for disse værdier med over i mit ASP script, hvor posterne skal slettes?
15. marts 2006 - 09:01
#10
Det smider du på valuen i checkBoxen: <input type="checkbox" name="C1" value="<%= rs("id") %>"> Når formen så bliver sendt, samler den automatisk alle de valgte checkboxes værdier til en kommasepereret liste. Du kan så bruge databasens IN() metode eller gennemløbe værdierne: if request.form("C1") <> "" then conn.execute("delete from dinTabel where ID IN("& request.form("C1") &")" end if for each item in request.form("C1") conn.execute("delete from dinTabel where ID="& item) next
15. marts 2006 - 17:37
#11
Hm,,- lyder ikke nemt, men jeg prøver..
20. marts 2006 - 01:08
#12
Har ikke glemt spg. arbejder stadig på det :-)
27. marts 2006 - 14:29
#13
Okay, så virker det næsten, lige på nær at jeg får en fejl i linien: conn.execute("delete from dinTabel where ID IN("& request.form("C1") &")" [MySQL][ODBC 3.51 Driver][mysqld-4.0.17-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
27. marts 2006 - 16:25
#14
Prøv at udskrive sql'en til skærmen så vi kan se den i samlet tilstand: response.write ("delete from dinTabel where ID IN("& request.form("C1") &")"
27. marts 2006 - 17:02
#15
Sql'en ser således ud: SELECT * FROM data WHERE id IN ('')
27. marts 2006 - 17:21
#16
Ser ud til min request.form C1 er tom
27. marts 2006 - 18:07
#17
Naturligvis, jeg sender jo heller ikke nogen formalur, men linker over til slet.asp Hvordan får jeg så data med over?
27. marts 2006 - 18:21
#18
du kan vel bare smide den på dit slet-link som en parameter og så hente den ud af request.querystring i stedet...
27. marts 2006 - 18:47
#19
Måske jeg prøver...
27. marts 2006 - 19:07
#20
Det kan man ikke, da der jo ingenværdi er i formularfeltet når siden loades.
27. marts 2006 - 20:01
#21
Kan man lave noget der hedder onclick link send formular?
27. marts 2006 - 20:08
#22
Du skulle gerne have en hel masse (ifølge min post 15/03-2006 09:01:22): <input type="checkbox" name="C1" value="1"> <input type="checkbox" name="C1" value="3"> <input type="checkbox" name="C1" value="8"> Det er disse checkbokse, der afgøre hvilke ID'er, der skal slettes. Hele formen skal altså sendes...
27. marts 2006 - 20:53
#23
Kan man så sende formen med java-script?
27. marts 2006 - 21:26
#24
Der skal nok lige siges at der er en fejl, hvis der er mindre end 3 poster virker tjek all ikke
28. marts 2006 - 10:55
#25
Okay, jeg fik form.submit() til at virke, men hvis der er mindre en 2 afkrydsningsfelter virker marker "all" ikke :(
11. april 2006 - 20:36
#26
svar = point
18. april 2006 - 11:32
#27
Angående problemet angående kun en box, skal du bare ændre: obj = objChk.form.C1 til: obj = document.getElementsByName("C1")
Vi tilbyder markedets bedste kurser inden for webudvikling