Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vilka chekboxar är ikryssade?

Postades av 2006-11-18 22:57:47 - Kim Lundström, i forum asp - allmänt, Tråden har 2 Kommentarer och lästs av 611 personer

Jag har en blogg och detta är koden för att ändra ett inlägg där 'taggarna' redan är satta. (taggar = kategorier)

Jag skulle vilja få till det så att de "taggar" som är kopplade till just detta inlägg är ikryssade i checkboxarna.

Infon om vilka taggar som finns (och till vilket inlägg) har jag i en annan tabell som heter "tblTagPlace" och som är uppbyggd så här.

tId - pId - tagId

tId = Autonummer
pId = Id nummret för blogginlägget (siffra)
tagId = Id nummret för en specifik tagg (siffra)

------------------
När jag skriver ut taggarna till blogginlägget så hämtar jag det ur tabellen "tblTagTitle" där varje tagId (som jag får från "tblTagPlace") går till en taggtitel som t.ex "nyhet", "bild" och "film".
------------------

Frågan är hur jag kan hämta info från "tblTagPlace" och använda det för att kryssa i de checkboxar (taggar) som är knytna till blogginlägget.

Kod för att skriva ut checkboxarna

	strSQL = "SELECT tagId,tagTitle FROM tblTagTitle"
	Set RS = objConn.Execute(strSQL)

IF Not RS.EOF THEN
	arrRows = RS.GetRows()
ELSE
	rsFindingsTaggar = "No"
END IF
	RS.Close : Set RS = Nothing
Response.Write "<b>Taggar</b>"
Response.Write "<table border='0' cellpadding='0' width='100%' cellspacing='0' class='adminTools'>"
tagCol = 0
IF NOT rsFindingsTaggar = "No" THEN
totRecords = Ubound(arrRows,2)
For iTagg = 0 to totRecords
	tagId = arrRows(0,iTagg)
	tagTitle = arrRows(1,iTagg)
IF tagCol = 0 THEN
Response.Write "<tr>"
END IF

' här måste jag väl köra nån sorts loop och en if sats antar jag.. men jag får det inte att funka.
Response.Write "<td><input type='checkbox' name='tagId' value='" & tagId & "'>" & tagTitle & "</td>"

tagCol = tagCol + 1
IF tagCol = 5 THEN
tagCol = 0
Response.Write "</tr>"
END IF
Next
Erase arrRows
IF tagCol > 0 THEN
Response.Write "</tr>"
END IF
Response.Write "</table>"
ELSE
'Visa inga
END IF


Kod som jag har för att få ut rätt info ut "tblTagPlace". Denns kod ligger just ovanför.
	Set RS = objConn.Execute(strSQL)

IF Not RS.EOF THEN
	arrRows = RS.GetRows()
ELSE
	rsFindingsTaggar = "No"
END IF
	RS.Close : Set RS = Nothing

IF NOT rsFindingsTaggar = "No" THEN
totRecords = Ubound(arrRows,2)
For iTagg = 0 to totRecords
	pId = arrRows(0,iTagg)
	tagId = arrRows(1,iTagg) & ", " & tagId
Next
Erase arrRows
END IF
	arrTagId = Split(tagId, ", ")



Nån som har en idé och/eller en lösning på mitt dilemma?
Kanske JOINA de två tabellerna?
Tack


Svara

Sv: Vilka chekboxar är ikryssade?

Postades av 2006-11-19 10:30:44 - Andreas Hillqvist

Jag har skapat följande exempel:

<%@language="VBScript" %>
<!-- METADATA
	TYPE="TypeLib"
	NAME="Microsoft ActiveX Data Objects 2.6 Library"
	UUID="{00000206-0000-0010-8000-00AA006D2EA4}"
	VERSION="2.6" -->
<%Option Explicit%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>Checkboxes</title>
</head>
<body>
<%
Function Checked(Value)
	If Value Then
		Checked = "checked=""checked"""
	Else
		Checked = ""
	End If
End Function

Sub WriteTags(Recordset, TagId, TagTitle, TagChecked)
Dim tagCol
	Response.Write "<b>Taggar</b>"
	Response.Write "<table border=""0"" cellpadding=""0"" width=""100%"" cellspacing=""0"" class=""adminTools"">"
	Response.Write "<tr>"
	Do Until Recordset.EOF
		If tagCol = 5 Then
			tagCol = 0
			Response.Write "</tr><tr>"
		Else
			tagCol = tagCol + 1		
		End If

		Response.Write "<td>" + _
			               "<label>" + _
				               "<input type=""checkbox"" name=""tagId"" value=""" & TagId & """ " & Checked(TagChecked) & " />" & _
				               Server.HTMLEncode(TagTitle) & _
			               "</label>" + _
		               "</td>"
		Recordset.MoveNext
	Loop
	Response.Write "</tr>"
	Response.Write "</table>"
End Sub

Dim objRs
Dim objCmd
Dim objConn
	
	Set objConn = CreateObject("ADODB.Connection")
	objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" + _
		         "Data Source=" & Server.MapPath("blogg.mdb") & ";" 
	
	Set objCmd = CreateObject("ADODB.Command")
	Set objCmd.ActiveConnection = objConn
	objCmd.CommandText = "SELECT tblTagTitle.tagId, tblTagTitle.tagTitle, (tblTagPlace.pId IS NOT NULL) AS tagChecked" + vbCrLf + _
	                     "FROM tblTagTitle LEFT JOIN " + _
		                     "tblTagPlace ON ((tblTagTitle.tagId = tblTagPlace.tagId) AND (tblTagPlace.pId = @pId))"

	objCmd.Parameters.Append(objCmd.CreateParameter("@pId",adInteger,adParamInput,,CLng(Request.QueryString("pid"))))

	Set objRs = CreateObject("ADODB.Recordset")
	objRs.Open objCmd
	
	WriteTags objRs, objRs("tagId"), objRs("tagTitle"), objRs("tagChecked")	
	
	objRs.Close
	
	objConn.Close 
	
%>
</body>
</html>

Din visar hur du gör en sådan Join du efterfrågar.

Jag har valt att använda en paramterfråga, vilket är ett bra skydd mot SQL inject.
Metadata tagen i näst överst på sidan ger mig tillgång till ADO's konstanter, så som adInteger och adParamInput.
Jag tycker personligen att det är hemskt fult att använda arrayer. Jag föredrar loop. JAg tror desutom skillnaden är minimal.
Jag har strukturerat koden i subrutiner. Jag tycker det ger en bättre överblick och möjlighet att underhålla. Man ser tydlig var ett block börjar och slutar.

Subrutinen WriteTags(Recordset, TagId, TagTitle, TagChecked) är oxå återanvändbar. T.ex. om du skapar ett nytt inlägg och då vill du kanske lista tagarna med kryssrutor:
    strSQL = "SELECT tagId,tagTitle FROM tblTagTitle ORDER BY tagTitle"
    Set RS = objConn.Execute(strSQL)
    WriteTags RS, RS("tagId"), RS("tagTitle), False
    RS.Close


Du är välkommen att använda denna kod.


Svara

Sv:Vilka chekboxar är ikryssade?

Postades av 2006-11-19 18:40:28 - Kim Lundström

Wow, tack så mkt.
Har just suttit och lagt in koden på min sida och det funkar hur bra som hellst :)

Jag brukar aldrig använda mig av sub´s, men jag funderar på att börja nu, det känns otroligt mkt smidigare så här.

tack för hjälpen!
om du vill se hur det blev på sidan så släng iväg ett mail till kim@weine.se så ska du få en länk.
Sidan är inte släppt ännu så....

tack
//Kim


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
640
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies